💨

DockerとDocker Composeをproxy環境下で使用する

2024/07/18に公開

DockerとDocker Composeをproxy環境下で使用するための設定をまとめる。

環境

  • Ubuntu: 20.04
  • Docker: 20.10.21
  • Docker Compose: 2.4.1

Dockerの設定

1. systemdに環境変数を設定する

/etc/systemd/system/docker.service.d/override.confに下記を書き込む。

[Service]
Environment = 'http_proxy=<proxy_url>:<port>' 'https_proxy=<proxy_url>:<port>'

2. Dockerクライアントの設定

ユーザのホームディレクトリ内で ~/.docker/config.jsonを作成する。

{
  "proxies": {
    "default": {
      "httpProxy": "<proxy_url>:<port>",
      "httpsProxy": "<proxy_url>:<port>",
      "noProxy": "<no_proxy_url>"
    }
  }
}

Docker Composeの設定

1. docker-compose.ymlの設定

docker-compose.ymlに下記を追記する。

services:
  test:
    build:
      context: .
      args:
        - HTTP_PROXY=$HTTP_PROXY
        - http_proxy=$http_proxy
        - HTTPS_PROXY=$HTTPS_PROXY
        - https_proxy=$https_proxy
        - NO_PROXY=$NO_PROXY
        - no_proxy=$no_proxy
    environment:
      - HTTP_PROXY=$HTTP_PROXY
      - http_proxy=$http_proxy
      - HTTPS_PROXY=$HTTPS_PROXY
      - https_proxy=$https_proxy
      - NO_PROXY=$NO_PROXY
      - no_proxy=$no_proxy

2. .envの設定

docker-compose.ymlと同じ階層に、.envを作成する。

HTTP_PROXY=<proxy_url>:<port>
http_proxy=<proxy_url>:<port>
HTTPS_PROXY=<proxy_url>:<port>
https_proxy=<proxy_url>:<port>
NO_PROXY=<no_proxy_url>
no_proxy=<no_proxy_url>

参考

Discussion