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

我最近将我的 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

https://stackoverflow.com/questions/33947873/

相关文章:

python - 在构建需要编译代码的模块时将自定义 CMake 标志传递给 pip

c++ - = make_pair 是否调用复制构造函数?

javascript - ionic 如何转换和重新加载页面

nginx - nginx的访问日志的编码格式是什么?

laravel - 如何通过 Storage Facade(在 Laravel 5 中)获取下载文件

javascript - jsPDF addHTML 获取滚动元素的全部内容

reactjs - ReactJS 中的嵌入式文档查看器控件

java - 如何使用 Mysql JDBC 驱动连接 Android 和 MySQL

git - 删除标记但未 merge 的 Git 分支是否安全?

python - 将打开的文件从一个函数传递到另一个函数