如何更改正在运行的docker容器的dns

默认的dns 8.8.8.8和8.8.4.4被我国的防火墙阻止,我不想停止容器,因为我安装了很多软件。

如果你想改变DNS,你可以像在普通主机上一样进行,这应该是正常的。 例如编辑容器中的/etc/resolv.conf文件。

虽然如果它被完全封锁,我会推荐一个更永久的解决scheme。

/etc/default/docker (可能是基于Debian的主机上的/etc/default/docker.io )中,您可以添加一行以在新容器上设置默认DNS。 这条线看起来像

 DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4" 

您可以为每个希望用于parsing的DNS服务器添加一个新的-dns xxxx

一旦你完成了这个,你将需要重新启动Docker进程。 这取决于主机再次以几种方式完成。 对于基于Debian的主机:

  service docker.io restart 

docker run一个新的容器时,它将会设置这些DNS服务器。