如何更改 "default" docker-机器的 dns 设置

How to change "default" docker-machine's dns settings

我知道如何使用 dns 设置创建新的 docker-机器

docker-machine create -d virtualbox --engine-opt dns=8.8.8.8 my_machine

但是已经有一个 "default" 虚拟机那么有没有办法改变它的 dns?

我在网上阅读了使用 boot2docker 执行此操作的方法,但该工具已被弃用,docker-machine 已取代它。不幸的是,它太新了,我在网上找不到太多关于它的信息。

转到 ~/.docker/machine/machines/default/config.json 并将您自己的 DNS 服务器添加到 HostOptions/EngineOptions/Dns 并重新启动 docker 机器。

{  
   "HostOptions": {
        "Driver": "",
        "Memory": 0,
        "Disk": 0,
        "EngineOptions": {
            "ArbitraryFlags": [],
            "Dns": ["192.168.99.1","8.8.8.8","8.8.4.4"], <-- set it here
            "GraphDir": ""
        }
}

编辑:

config.json 中的 Dns 设置在 docker-machine 的新版本中似乎被忽略了。唯一似乎有效的是添加行(编辑它以满足您的需要)

"${DOCKER_MACHINE}" ssh "${VM}" "sudo sed -i.bkp '/--label provider=virtualbox/a --dns 8.8.8.8\\n--dns 8.8.4.4' /var/lib/boot2docker/profile && sudo /etc/init.d/docker restart"

之后
yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}"

在脚本 start.sh 中,每次 Docker 快速启动终端启动时 运行。

然后关闭机器(如果它是 运行ning)并打开 Docker 快速启动终端的新实例。

在 Windows10 docker 的 gui 上提供了一些便利。

只需右键单击托盘栏中 docker 的图标和 select "Settings" 项。

然后,在 Docker 的 window、select 的 "Network" 部分,将 DNS 选项从 "Automatic" 更改为 "Fixed" 并点击 "Apply"。 Docker 之后会自行重启。我输入了 Google 的 DNS (8.8.8.8),它对我来说工作正常。

希望对您有所帮助。