ubuntu20 にいれたdockerがdocker pullでproxyが通らない(解決)

ubuntu20 にいれたdockerがdocker pullでproxyが通らない(解決)

いろいろ調べてみたが、http_proxy環境変数を通せばよいらしいが、うまくいかない。
systemdなどの設定ファイルなどにhttp_proxyを入れてみたが変わらず。
原因は、snapでインストールしていたためで、環境設定用ファイルがデフォルトとは違う場所にあったため。
情報がなかなか見つからず、調べるのに時間がかかった。

snapでdockerをインストールした場合の設定ファイルは

/etc/systemd/system/snap.docker.dokerd.service

にあり、さらにそのファイルには、

EnvironmentFile=-/etc/environment

の行があり、なにやら環境設定はそれに書け、ということらしい。

/etc/environmentファイルにhttp_proxy環境変数を追加することで解決できた。

/etc/environment (修正前)

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

/etc/environment (修正後)

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
HTTP_PROXY="http://<proxy_server>:<port>"
HTTPS_PROXY="http://<proxy_server>:<port>"

設定ファイルを修正したら、dockerを再起動する。

$ sudo snap stop docker
$ sudo snap start docker

これで、docker pull すると、指定したproxy server経由でdocker imageが取得できるようになった。