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