Sometimes Docker users are unable to download Docker images behind a proxy due to issues with the Docker proxy settings.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to resolve such Docker-related issues while troubleshooting Docker issues.
In this context, we shall look into method to fix this Docker error.
We had a customer who installed Docker on his Ubuntu server. Then he tried running the below command:
$ sudo docker pull busybox
As a result, he received the below error:
Pulling repository busybox
2021/03/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server
In order to resolve this problem, we first create a systemd drop-in directory for the Docker service by running the below command.
$ mkdir /etc/systemd/system/docker.service.d
Next, we create a file called /etc/systemd/system/docker.service.d/http-proxy.conf that adds the HTTP_PROXY environment variable:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
Note: In case, if you have internal Docker registries that you need to contact without proxying you can specify them via the NO_PROXY environment variable:
Environment="HTTP_PROXY=http://proxy.example.com:80/"
Environment="NO_PROXY=localhost,127.0.0.0/8,docker-registry.somecorporation.com"
After that, we flush the changes by running the below command:
$ sudo systemctl daemon-reload
Then we verify if the configuration is loaded or not. For that, we run the below command:
$ sudo systemctl show --property Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80/
Finally, we restart the Docker by running the below command:
$ sudo systemctl restart docker
Finally, this fixed the Docker error.
This article covers the error, Cannot download Docker images behind a proxy.
You can fix this docker issue by doing the following:
1. In the file /etc/default/docker, add the line:
export http_proxy='http://<host>:<port>'
2. Restart Docker:
$ sudo service docker restart
Also, you can Follow the steps given below to fix this docker error:
1. Create a systemd drop-in directory for the docker service:
$ mkdir /etc/systemd/system/docker.service.d
2. Create a file called /etc/systemd/system/docker.service.d/http-proxy.conf and add the HTTP_PROXY env variable:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
3. If you have internal Docker registries that you need to contact without proxying you can specify them via the NO_PROXY environment variable:
Environment="HTTP_PROXY=http://proxy.example.com:80/"
Environment="NO_PROXY=localhost,127.0.0.0/8,docker-registry.somecorporation.com"
4. Flush changes:
$ sudo systemctl daemon-reload
5. Verify that the configuration has been loaded:
$ sudo systemctl show --property Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80/
6. Restart Docker:
$ sudo systemctl restart docker