■ はじめに
https://dk521123.hatenablog.com/entry/2023/11/24/000000
https://dk521123.hatenablog.com/entry/2023/11/23/000000
の Docker 版。小ネタ。
目次
【0】Docker の Proxy設定について 【1】Dockerサービス用のProxy設定手順 1)Docker用の 設定ファイルを追加する 2)設定を反映 3)確認 【2】Dockerクライアント用のProxy設定手順] 【3】その他Tips 1)docker run -e 2)Dockerfile / ENV 3)docker compose / environment
【0】Docker の Proxy設定について
* 設定には、以下の2点がある [1] Dockerサービス用のProxy設定 [2] Dockerクライアント用のProxy設定
【1】Dockerサービス用のProxy設定手順
* 日本語の以下の公式サイトに記載されている
https://docs.docker.jp/engine/articles/systemd.html#http
1)Docker用の 設定ファイルを追加する
sudo mkdir -p /etc/systemd/system/docker.service.d sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf # 以下の「設定例:/etc/systemd/system/docker.service.d/http-proxy.conf」を参照 # 192.168.1.12:3128 部分は、各自のProsyサーバの設定に直すこと
設定例:/etc/systemd/system/docker.service.d/http-proxy.conf
[Service] Environment="HTTP_PROXY=http://192.168.1.12:3128/" "HTTPS_PROXY=http://192.168.1.12:3128/" "NO_PROXY=localhost,127.0.0.0/8"
Tips: teeコマンドを利用する
* 以下の関連記事で扱った teeコマンド で作ると楽
https://dk521123.hatenablog.com/entry/2023/11/08/000000
echo -e "[Service]\nEnvironment=\"HTTP_PROXY=http://192.168.1.12:3128/\"" | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf echo -e "Environment=\"HTTPS_PROXY=http://192.168.1.12:3128/\"" | sudo tee -a /etc/systemd/system/docker.service.d/http-proxy.conf echo -e "Environment=\"NO_PROXY=localhost,127.0.0.0/8\"" | sudo tee -a /etc/systemd/system/docker.service.d/http-proxy.conf # 確認 cat /etc/systemd/system/docker.service.d/http-proxy.conf
使用上の注意
* Typoに注意 => 「NO_PROXY(OK)」を「NOPROXY(ダメ)」ってして、ハマった。
2)設定を反映
# デーモンリロード sudo systemctl daemon-reload # 再起動 sudo systemctl restart docker # 確認(Runningであること) sudo systemctl status docker
3)確認
# Proxyの設定値(3点)が出てればOK! sudo docker info # Proxyの設定値(3点)が出てればOK! systemctl show --property=Environment docker systemctl show --user --property=Environment docker
【2】Dockerクライアント用のProxy設定手順
* 日本語の以下の公式サイトに記載されている
https://docs.docker.jp/network/proxy.html
* 以降の設定をすれば、以下の公式サイトの記述通り。 ==== 新しいコンテナの作成もしくは起動時に、 環境変数はコンテナ内へ自動的に設定されます ====
1)Docker用の 設定ファイルを追加する
mkdir -p ~/.docker vi ~/.docker/config.json # 以下の「設定例:~/.docker/config.json」を参照 # 192.168.1.12:3128 部分などは、各自のProsyサーバの設定に直すこと
設定例:~/.docker/config.json
{ "proxies": { "default": { "httpProxy": "http://192.168.1.12:3128", "httpsProxy": "http://192.168.1.12:3128", "noProxy": "localhost,127.0.0.0/8" } } }
【3】その他Tips
1)docker run -e
* docker run -e (--env) [環境変数] を利用する
サンプル
docker run \ -e HTTP_PROXY=http://192.168.1.12:3128 \ -e HTTPS_PROXY=http://192.168.1.12:3128 \ -e NO_PROXY="*.test.example.com,localhost,127.0.0.1" \ hello-world
2)Dockerfile / ENV
* Dockerfile の ENVで環境変数を設定する
サンプル
FROM nginx:latest # ★注目★ ENV https_proxy "http://192.168.1.12:3128" ENV http_proxy "http://192.168.1.12:3128" RUN apt-get -y update && apt-get -y upgrade
3)docker compose / environment
* docker compose の environmentで環境変数を設定する
サンプル
version: "3" services: nginx: image: nginx:latest container_name: nginx ports: - "8443:443" # ★注目★ environment: HTTP_PROXY: "http://192.168.1.12:3128" HTTPS_PROXY: "http://192.168.1.12:3128" NO_PROXY: "*.test.example.com,localhost,127.0.0.1"
参考文献
https://scrapbox.io/gyarasu/%5Bdocker%5D_Proxy%E7%92%B0%E5%A2%83%E4%B8%8B%E3%81%A7docker_pull%E3%81%AA%E3%81%A9%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B
https://qiita.com/homoluctus/items/00eebe3c36a9591c3803
https://gotohayato.com/content/563/
関連記事
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/25/000000
Docker ~ 基本編 / Dockerfile ~
https://dk521123.hatenablog.com/entry/2020/04/14/000000
Docker ~ 基本編 / docker imageコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Docker ~ docker を sudo なしで実行する ~
https://dk521123.hatenablog.com/entry/2023/11/22/000000
Proxy環境下でdocker pullしたらエラー
https://dk521123.hatenablog.com/entry/2024/02/08/144941
Linux で Proxy を設定するには
https://dk521123.hatenablog.com/entry/2023/11/24/000000
SBT ~ Proxy環境下でSBTを使用する ~
https://dk521123.hatenablog.com/entry/2023/11/23/000000
teeコマンド
https://dk521123.hatenablog.com/entry/2023/11/08/000000