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

标签 docker boot2docker docker-machine

我知道如何使用 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/

相关文章:

docker - 从 Windows 卸载 docker - Docker 工具箱

docker - 部署docker服务以使用traefik 2.0进行集群

docker - 从容器运行的Docker注册表的默认用户名密码是什么

docker - 我无法从使用docker运行的localstack获取dynamoDB表的列表

docker - 更改 boot2docker 内存分配

docker-compose up 失败并显示 "Unable to find a node that satisfies the following conditions "

docker - 如何使用Docker从GitLab CI部署到Google Container Engine实例?

mysql - 如何在基于 mysql/mysql-server 的 Docker 容器中启动 MySQL 服务器

docker - 没有足够的熵来支持在 boot2docker 中运行的 docker 容器中的/dev/random

windows - 无法从 Windows 中的 docker 访问托管应用程序