Docker container can reach DNS but not resolve hosts

DNelson picture DNelson · Mar 25, 2015 · Viewed 17.8k times · Source

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:

  1. 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 in ping: unknown host www.google.com both with and without the --dns flag.

  2. I can reach 8.8.8.8 both from inside and outside the containers. docker run -it ubuntu ping 8.8.8.8 works.

  3. 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 add DOCKER_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.

  4. ip_forward is enabled. (see here)

  5. 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.

Answer

Matthew Sprankle picture Matthew Sprankle · Aug 10, 2015

They have fixed the issue in 1.8: https://github.com/docker/docker/issues/13381 Cheers.