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

yax*_*xin 5 docker boot2docker

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

Mar*_*hes 0

如果您想更改 DNS,您可以按照与普通主机相同的方式进行操作,并且应该可以正常工作。例如编辑/etc/resolv.conf容器中的文件。

尽管如果它被完全阻止,我会推荐一个更永久的解决方案。

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

DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4"
Run Code Online (Sandbox Code Playgroud)

-dns x.x.x.x您只需为要用于解析的每个 DNS 服务器添加一个新服务器即可。

完成此操作后,您将需要重新启动 Docker 进程。这可以通过几种方式完成,具体取决于主机。对于基于 Debian 的主机:

 service docker.io restart
Run Code Online (Sandbox Code Playgroud)

当您docker run创建新容器时,它将设置这些 DNS 服务器。