How to configure docker to use proxy

A proxy is required when the server running Docker does not have direct access to the Internet. Configure the Docker daemon to use a proxy server to access images stored on the official Docker Hub Registry or 3rd-party registries. There are 2 ways to configure the proxy for docker :

  • Configuring proxy variables in the /etc/sysconfig/docker file
  • Configuring environment variables

Method 1 : Configuring proxy variables in the /etc/sysconfig/docker file

1. Add following configuration in /etc/sysconfig/docker file:

# cat /etc/sysconfig/docker
export HTTP_PROXY="http://USERNAME:PASSWORD@[your.proxy.server]:[port]"
export HTTPS_PROXY="https://USERNAME:PASSWORD@[your.proxy.server]:[port]"

For example :

# cat /etc/sysconfig/docker
HTTP_PROXY="http://user01:password@10.10.10.10:8080"
HTTPS_PROXY="https://user01:password@10.10.10.10:8080"

2. Restart the Docker daemon after setting up the proxy.

# service docker restart

Method 2 : Configuring environment variables

1. Create a drop-in

# mkdir /etc/systemd/system/docker.service.d

2. Create a file with name /etc/systemd/system/docker.service.d/http-proxy.conf that adds the HTTP_PROXY environment variable:

[Service]
Environment="HTTP_PROXY=http://user01:password@10.10.10.10:8080/"
Environment="HTTPS_PROXY=https://user01:password@10.10.10.10:8080/"
Environment="NO_PROXY= hostname.example.com,172.10.10.10"

3. reload the systemd daemon

# systemctl daemon-reload

4. restart docker

# systemctl restart docker

5. Verify that the configuration has been loaded:

# systemctl show docker --property Environment
Environment=GOTRACEBACK=crash HTTP_PROXY=http://10.10.10.10:8080/ HTTPS_PROXY=http://10.10.10.10:8080/ NO_PROXY= hostname.example.com,172.10.10.10
Related Post