68
78

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Proxy環境下のためのDockerの設定

Last updated at Posted at 2018-10-01

Proxy環境下で作業していると、何か知らないけどハマったり、余計な設定をしなければなりません。
Dockerを使用する際にもProxyがあるだけで手間が増えますし、コンテナを作成する度にProxy用の設定をするのは疲れます。
なので、それを解消するための設定を書きたいと思います。

Environment

  • Ubuntu 16.04.5 LTS
  • Docker 18.06.1-ce

Configuration

daemon用のproxy設定

docker-hubからimageをダウンロードする際に必要になるProxyの設定が必要になります。
これは、docker-daemonをsystemd上で動作させている場合には必須です。

$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ echo -e "[Service]\nEnvironment=\"HTTP_PROXY=http://your.proxy.url:port/\"" | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://your.proxy.url:port/"

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

container用のproxy設定

containerを作成するごとにproxyの設定をするのは面倒なので、一度設定ファイルを書くことでそれを解消します。
docker-composeとかを使用すればいいのですが・・・

$ mkdir ~/.docker
$ vi ~/.docker/config.json

{
    "proxies":
    {
        "default":
        {
            "httpProxy": "http://your.proxy.url:port"
        }
    }
}

このように記述することで、コンテナ内の環境変数HTTP_PROXYにproxyのURLがセットされます。

DNSの設定(おまけ)

ProxyをFQDNで書いた場合、それを名前解決できるDNSサーバを指定する必要があります。
これも、コンテナごとに設定しなくてもいいようにすることができます。

$ vi /etc/docker/daemon.json

{
    "dns": ["xxx.xxx.xxx.xxx."]
}

$ sudo systemctl restart docker

これでproxyを名前解決できるようになります。
DNSサーバを2つ以上指定したい場合は、コンマで区切ればOKです。

Reference

68
78
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
68
78

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?