我知道如何使用 dns 设置创建新的 docker-machine
docker-machine create -d virtualbox --engine-opt dns=8.8.8.8 my_machine
但是已经有一个“默认”虚拟机,那么有没有办法改变它的 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 Quickstart Terminal 时都会运行该脚本。
然后关闭机器(如果它正在运行)并打开 Docker 快速启动终端的新实例。
关于docker - 如何更改 "default"docker-machine 的 dns 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34296230/