解决docker服务默认网卡和宿主机网卡内网段冲突
场景说明介绍:
docker网络模式默认使用的bridge模式,当我们创建容器时,每个容器会有它自己的虚拟网络接口连接到桥接网络docker0,并获取一个ip。可以通过ifconfig docker0查看docker0的信息,使用route -n命令可以看到。
docker会默认占用三个网段,172.17.0.0,172.18.0.0,172.19.0.0
在实际使用环境中,有可能咱们局域网内已经将这些网段分配到了其他的工作区域中,如果在这些工作区域中去访问此环境下的docker服务,是无法正常访问的。
那么这时候就只有两种解决办法,将已分配的工作区域的网段换成其他网段,或者将docker占用的网段指定成其他网段,显然前者相对来说成本要稍高些。
所以今天咱们就来看看如何将docker network占用的网段指定成其他的网段以避免ip冲突。
解决过程如下:
第一步停止docke服务,删除默认的桥接docker0网卡:
提示下面问题,解决办法: yum install bridge-utils
root@localhost ~]# brctl
-bash: brctl: command not found
第二步 手动创建一个新的网桥名称为 bridge0:
第三步 创建daenon.json文件:
**提示:**本以为此步骤完成后 重启docker服务就会把docker0默认的网卡删掉。但是事实不是这样的
第四步 解决重启docker服务,新绑定的bridge0失效,docker0网卡又自动恢复原样的问题:
CentOS7修改Docker默认启动参数:
下面的docker服务启动脚本添加了2行的配置文件说明:
添加的2行说明:
- 加载的配置文件
EnvironmentFile=-/etc/default/docker - 然后在ExecStart这个配置中,添加引用的参数,另外此前一行结尾要加
$DOCKER_OPTS
启动脚本修改参考文档:
https://blog.51cto.com/smilepad/2324171
#重载
systemctl daemon-reload
#重启docker服务
systemctl restart docker
#查看 docker 启动状态
systemctl status docker
第五、如果重启docker服务,发现默认的docker0网卡还在,那就继续执行下面的命令
启动docker服务,直到生效为止
sudo service docker restart
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求