解决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

浙公网安备 33010602011771号