工作中碰的问题,记录下解决过程:
问题描述
2台内网服务器:A(172.20.72.77)和B(172.17.3.222),在A服务上ping B 。
安装 docker之前是可以ping通,安装docker之后确ping不通了,
查找原因:
在安装docker的A服务器上查看网卡信息:可以看到 docker的虚拟网卡 docker0 的默认网段是 172.17,正好和我们的 B 服务器网段冲突了,所以导致 ping 不通。
原因: Docker 和宿主机的网段冲突。
解决方法:
修改 docker0 默认网段即可,具体操作如下:
- 删除原有配置
brctl 命令如果不存在,先安装:yum install bridge-utils
# 停止docker服务
systemctl stop docker
# 下线 docker0
ip link set dev docker0 down
# 删除
brctl delbr docker0
iptables -t nat -F POSTROUTING
- 创建新的网桥
# 新增网桥
brctl addbr docker0
# 设置网桥默认网段
ip addr add 172.17.10.1/24 dev docker0
# 上线
ip link set dev docker0 up
- 配置 Docker 的文件daemon.json
vi /etc/docker/daemon.json
{
"bip":"172.17.10.1/24"
}
- 重启docker 服务
systemctl start docker