Docker で Proxy を使う

 
やや苦戦したのでメモ。
Systemd の drop-in という設定を使って解決した。
なお OS は AlmaLinux8.10.

Configure the daemon to use a proxy | Docker Docs

まずはファイルの置き場を作成。

sudo mkdir -p /etc/systemd/system/docker.service.d

で、続いて http-proxy.conf ファイルを作成する。

# sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://10.0.0.8:3128"
Environment="HTTPS_PROXY=http://10.0.0.8:3128"
Environment="NO_PROXY=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,localhost,127.0.0.1,169.254.169.254,.internal"

そして docker を再起動

sudo systemctl daemon-reload
sudo systemctl restart docker

ちゃんと反映されたか docker info で確認

$ docker info
#中略
 HTTP Proxy: http://10.0.0.8:3128
 HTTPS Proxy: http://10.0.0.8:3128
 No Proxy: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,localhost,127.0.0.1,169.254.169.254,.internal
#以下略

これが済んだら次はDockerコンテナ。
DockerfileにENVでプロキシを追加する。

ENV http_proxy=http://10.0.0.8:3128
ENV https_proxy=http://10.0.0.8:3128
ENV no_proxy=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,localhost,127.0.0.1
ENV HTTP_PROXY=http://10.0.0.8:3128
ENV HTTPS_PROXY=http://10.0.0.8:3128
ENV NO_PROXY=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,localhost,127.0.0.1

なかなかメンドクサかった。