2024/12/22 DockerネットワークにSquidプロキシサーバを立て接続する
方法
1. DockerのBridgeネットワークにSquid(プロキシサーバ)のコンテナを所属させる
2. Dockerネットワークに接続するときは、Squidコンテナをプロキシサーバとして指定する
$ curl --proxy http://localhost:(SquidコンテナのIPアドレス) http://(アクセスしたいコンテナのDockerネットワーク上のIPアドレス):(ポート)
とりあえず次のようにした
code:docker-compose.yml
version: '3.8'
services:
nginx:
image: nginx:latest
networks:
mynetwork:
ipv4_address: 172.20.0.6
ports:
- "80:80"
squid:
image: ubuntu/squid
networks:
mynetwork:
ipv4_address: 172.20.0.7
ports:
- "3128:3128"
volumes:
- ./squid:/etc/squid
networks:
mynetwork:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.20.0.0/16
Tips
Squidサーバに参照させるDNSサーバのIPアドレスを指定する
通常は、/etc/squid/squid.confに設定ファイルを置くと良い
DockerコンテナとしてSquidサーバを運用する場合...
特定のコンテナが使用するDNSサーバのIPアドレスを、docker runコマンドの--dnsオプションで指定できるっぽい?
https://docs.docker.jp/engine/userguide/networking/default_network/donfigure-dns.html
docker-compose.ymlを使いたい場合も、dnsという項目で指定できる
これをSquidが正しく参照してくれるのか?t6o_o6t.icon
Dev ContainerにおけるDocker outside of Dockerの問題点が発覚した
/etc/squid/squid.confをボリュームとしてマウントしたいのだが、Dev Container上のファイルをマウントすることは難しそうだ
https://www.nullpo.io/2020/05/27/docker-dood-volume/