docker ping不通宿主机的解决办法:1、修改daemon.json;2、关闭防火墙;3、修改sysctl.conf;4、重设网桥即可。
1、Docker网桥模式ping不通宿主机怎么办?
问题描述:
Docker网络模式分为四种,一般我们不设置时默认为bridge单桥模式,容器使用独立的network Namespace,并连接到docker0虚拟网卡中。通过docker0网桥以及Iptables nat表配置与宿主机通信。此时在堡垒机上进行测试,利用busybox进行测试:
- 测试网关
<font style="color:rgb(61, 70, 77);">172.17.0.1</font>
同样无法通
推测网桥存在问题
1. 重设网桥
1)安装bridge-utils
YUM:<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">yum install bridge-utils</font>
RPM:https://centos.pkgs.org/7/centos-x86_64/bridge-utils-1.5-9.el7.x86_64.rpm.html

plain
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000000000000 no
docker0 8000.000000000000 no
+ 这里的br0是我后面添加的(忽略)

3)问题解决
- 首先暂停docker服务
systemctl stop docker
- 添加网桥
brctl addbr br0
- 添加ip字段
ip addr add 172.16.0.1/24 dev br0
- 启用网桥
ip link set dev br0 up
- 查看网络br0:
- 修改docker默认网桥
vim /etc/docker/daemon.json
"bridge":"br0"
- 重启docker
systemctl start docker
- 使用brctl命令查看
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000000000000 no
docker0 8000.000000000000 no
- 启用容器,并使用brctl查看,并测试网络是否通
docker run -it --name ts --rm busybox:1.28.4 sh