使用BusyBox容器可快速验证网络连通性:两容器默认接入bridge网络(172.17.0.0/16),通过ip addr查IP、ping互测及宿主机网关(172.17.0.1)验证二层互通;跨网段需docker network connect bridge手动连接。

用 BusyBox 启动测试容器
BusyBox 镜像轻量(几 MB)、无依赖、自带 ping 和 ifconfig 等基础命令,适合做网络探针。 执行以下命令拉取并启动两个容器:docker pull busybox
docker run -itd --name test-a busybox
docker run -itd --name test-b busybox
默认情况下,它们都接入 Docker 内置的 bridge 网络(子网通常是 172.17.0.0/16),会自动分配如 172.17.0.2、172.17.0.3 这样的 IP。检查容器 IP 并互相 ping
进入其中一个容器查看自己的 IP 和网关:docker exec -it test-a ip addr
你会看到 eth0 的 IP(比如 172.17.0.2),默认网关是 172.17.0.1(即 docker0 网桥地址)。 再尝试 ping 另一个容器:docker exec test-a ping -c 3 172.17.0.3
验证容器与宿主机互通
宿主机在 bridge 模式下就是网关(172.17.0.1),所以从容器里 ping 它即可:docker exec test-a ping -c 3 172.17.0.1
不通?先确认宿主机 firewalld/ufw 是否放行了 docker0 接口流量,再检查 iptables FORWARD 链是否允许转发(Docker 默认会配置,但手动清规则后可能丢失)。跨网段通信要手动连接
如果你创建了自定义 bridge 网络(如 my-net),新容器默认只在该网段内:docker network create my-net
docker run -itd --net=my-net --name test-c busybox
此时 test-c 和 test-a 不在一个子网,直接 ping 不通。让它同时加入默认 bridge 网络即可:docker network connect bridge test-c
再进 test-c 执行 ip addr,会看到两个 IP:一个在 my-net,一个在 172.17.0.0/16 —— 这样就能跨网段通信了。 不复杂但容易忽略


















