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

时间:2015-11-26 22:31:41

标签: docker

我最近在我的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对现有容器永久化?

提前致谢 -Kesav

1 个答案:

答案 0 :(得分: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