Are you facing Error response from daemon in Docker? This article will guide you through on how to fix it.
As part of our Server Support Services, we have helped customers fix Docker related issues regularly.
In this context we shall see the root cause of this issue and how to get rid of it.
From our experience, in older version of Dockers, this error results from issues with the DNS.
While in recent versions of docker, it occurs when there exist Network infrastructure problems causing the client and registry coordination on hold. A proxy between the client and registry can also trigger this error.
This error could be triggered when there are issues with the DNS or as a result of Network Infrastructure issues. Let us look into them briefly.
Imagine you get an error message such as this;
Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: Get https://auth.docker.io/token?account={your account name here}&scope=repository%3Alibrary%2Fhello-world%3Apull&service=registry.docker.io: dial tcp: lookup auth.docker.io on 100.100.xx.x:1x: read udp 100.100.xx.x:1xxxx->100.100.xx.x:1x: i/o timeout.
See ‘docker run –help’.
From the error report, it is very clear that this is a DNS issue here. To fix this, follow the recommendation provided below;
i. To begin, Go to to Docker and open the Docker Settings.
ii. Next, Navigate to the Network tab where you can change the DNS server to Fixed. By default is will be the Automatic option.
iii. Finally, Save the changes by clicking on the apply button.
Ensure that you restart the Docker service to commit the changes and you will see that the issue has been fixed.
When you are trying to run the docker command and see an error such as this;
Unable to find image 'docker-image_name:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.xx.xx:53: read udp 100.100.xx.xx:38062->100.100.xx.xx:53: i/o timeout.
See 'docker run --help'.
To resolve this, try to separate the docker proxy. Then you can create a new directory "/etc/systemd/system/docker.service.d" and place a new file called "http-proxy.conf" into it. See the command to implement these actions;
mkdir /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/http-proxy.conf
as soon as the file "http-proxy.conf" is open, add the following attributes taking note on the ip field as per your situation;
[Service]
Environment="HTTP_PROXY=<ip>:808"
Environment="HTTPS_PROXY=<ip>:808"
Environment="NO_PROXY=localhost,127.0.0.1,localaddress,.localdomain.com"
Next, you can save this file and restart the docker deamon and docker service via the command below;
sudo systemctl daemon-reload
sudo systemctl restart docker
Easy to follow steps to fix response from daemon in Docker.