如何为现有的Docker容器更改resolv.conf

4
我最近将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//resolv.conf,但是没有效果。
目前,每当我重新启动容器时,我连接到容器并手动更改/etc/resolv.conf文件。但是这个文件的更改在容器重新启动期间丢失。我不想杀死我的容器并重新创建它们。
有没有办法使我的resolv.conf对现有容器永久有效?
提前感谢 -Kesav
1个回答

0

我正在构建一个可移植的系统,它经常更改主机网络。我找到的解决方案是将您的容器创建为主机,并将主机resolv.conf的卷绑定到容器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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接