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

如何更改正在运行的docker容器的dns,docker,boot2docker,Docker,Boot2docker,默认dns 8.8.8.8和8.8.4.4被我国的防火墙阻止,我不想停止容器,因为我在其中安装了很多软件。如果你想更改dns,你可以用与在普通主机上相同的方法进行更改,这应该可以正常工作。例如,编辑容器中的/etc/resolv.conf文件 尽管如果它被完全阻止,我还是推荐一个更持久的解决方案 在/etc/default/docker(在基于Debian的主机上可能是/etc/default/docker.io)中,您可以添加一行来设置新容器上的默认DNS。这条线看起来像 DOCKER_OPT

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

如果你想更改dns,你可以用与在普通主机上相同的方法进行更改,这应该可以正常工作。例如,编辑容器中的
/etc/resolv.conf
文件

尽管如果它被完全阻止,我还是推荐一个更持久的解决方案

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

DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4"
您只需为要用于解析的每个dns服务器添加一个新的
-dns x.x.x

完成此操作后,需要重新启动Docker进程。根据主机的不同,这可以通过几种方式实现。对于基于Debian的主机:

 service docker.io restart

当您
docker运行一个新容器时,它将设置这些DNS服务器。

这显然会重新启动一个容器。此外,这不会更改容器设置,它们会在创建容器时保持不变。