I'm having an interesting problem running docker containers: out of the blue, I'm not able to resolve DNS from within the container.
Here's a rundown:
Nothing is resolving; apt-get, pip, one-off ping containers, etc. Running
docker run -it --dns=8.8.8.8 ubuntu ping www.google.com
results inping: unknown host www.google.com
both with and without the--dns
flag.I can reach 8.8.8.8 both from inside and outside the containers.
docker run -it ubuntu ping 8.8.8.8
works.I've configured the containers to use both 8.8.8.8, 8.8.8.4, and my local network DNS servers (in various permutations) both by editing
/etc/sysconfig/docker
to addDOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.8.4"
and by setting the--dns 8.8.8.8
flag on the containers at runtime.systemctl restart docker
was run between each change.ip_forward
is enabled. (see here)I've done a full reset as specified here.
I'm running Fedora 21, docker client version 1.5.0.
Any ideas? I'm at a complete loss as to what's preventing docker from accessing the Internet successfully.
You could install tools like
dig
inside the docker image to alanyse the issue.use static hosts in your
/etc/hosts
file te make apt-get run inside the docker image. add these lines to your hosts file:After all this, a full reboot solved the problem - although, that still doesn't answer what it was.
If anyone knows what the actual cause was, I'm still curious, but for now the problem is gone.
They have fixed the issue in 1.8: https://github.com/docker/docker/issues/13381 Cheers.