如何永久修改Docker网桥IP为172.31.0.1/24?
解决Ubuntu 16.04上Docker网桥子网永久配置问题
我来帮你搞定这个Docker网桥配置的问题——你遇到的情况在systemd管理的Ubuntu系统上很常见,主要是旧网桥残留和配置细节没做到位,按下面的步骤一步步来:
1. 正确配置daemon.json文件
Ubuntu 16.04用systemd管理Docker,所以/etc/docker/daemon.json是唯一有效的全局配置文件,/etc/default/docker确实不会生效,你可以直接忽略它。
先编辑这个配置文件:
sudo nano /etc/docker/daemon.json
把内容改成下面这样(注意JSON语法要严格,引号、逗号都不能错):
{ "bip": "172.31.0.1/24" }
这里的bip参数就是专门用来指定Docker默认网桥docker0的IP地址和子网的,完全符合你的需求。
2. 清理旧的网桥残留(这是关键!)
如果Docker之前已经运行过,它会自动创建docker0网桥,直接重启服务不会覆盖旧的IP配置,所以必须先手动清理:
- 先停掉Docker服务:
sudo systemctl stop docker
- 禁用并删除现有的
docker0网桥:
sudo ip link set dev docker0 down sudo brctl delbr docker0
要是你没有
brctl命令,先装个工具包:sudo apt-get install bridge-utils
3. 重启Docker并验证配置
现在启动Docker服务:
sudo systemctl start docker
然后验证配置是否生效,执行这条命令:
ip addr show docker0
你应该能在输出里看到inet 172.31.0.1/24的字样,这就说明配置成功了。
4. 排查可能的干扰
如果还是没生效,先检查daemon.json的语法错误:
docker daemon - reload
这条命令会加载配置并输出语法问题,你可以根据提示修正。另外,要是你之前创建过自定义Docker网络,可能会影响默认网桥,这种情况下可以先删除自定义网络再重试。
内容的提问来源于stack exchange,提问作者user152037
相关产品推荐
相关产品推荐

