我最近将我的 Ubuntu 上的 docker 版本升级到了最新的 1.9 版本。在升级期间,docker 网桥网关已从 172.17.42.1
更改为至 172.17.0.1
.
我有一些现有的容器,其中 resolv.conf 仍然指向 172.17.42.1
所以每当我重新启动容器时,resolv.conf 都会重置为 172.17.42.1
.我试图修改 /var/lib/docker/containers/<containerid>/resolv.conf
但是没有效果。
目前,每当我重新启动容器时,我都会连接到容器并更改 /etc/resolv.conf
手动归档。容器重启期间,对该文件的更改将丢失。我不想杀死我的容器并再次重新创建它们。
有没有办法让我的 resolv.conf 对现有容器永久有效?
提前致谢 -凯萨夫
最佳答案
我正在构建经常改变主机网络的可移植系统,我找到的解决方案是将容器创建为主机,并将主机 resolv.conf 中的卷绑定(bind)到容器 resolv.conf,这主要是因为如果网络在容器发生变化时发生变化已经起来了就不更新了
这里是 docker-compose 服务声明的例子
gpioctl:
container_name: gpioctl
image: registry.gitlab.com/absadevelopers/bluetoothgateway/bluetoothgateway_gpioctl
network_mode: host
volumes:
- /var/log/knesys:/var/log/knesys
- /etc/resolv.conf:/etc/resolv.conf:ro
restart: unless-stopped
depends_on:
- nodesetup
关于docker - 如何更改现有 docker 容器的 resolv.conf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947873/