宿主机能ping通docker容器但是访问不了网页_实战:Docker桥接网络连通性测试

在《Docker桥接网络入门》基础知识上,本文将通过实例来创建Docker的桥接网络,包括默认的桥接网络和用户自定义的桥接网络。并通过桥接网络和网络连接来测试各独立容器之间的连通性。

环境说明

1. 安装docker,可参考《Docker在CentOS系统中的安装》;

2. 容器alpine01和容器alpine02创建在默认桥接网络bridge上;

3. 容器alpine03、容器alpine04和容器alpine05创建在自定义的桥接网络alpine-net上;

4. 容器alpine05连接到bridge网桥上。

使用默认的桥接网络

1. 确认目前Docker宿主机的网络情况。

docker network ls

b12ca34893891024ae09fa7de225afe9.png

当前Docker宿主机上只有一个默认的桥接网络:f8f96ec60ff2

2. 启动容器alpine01和容器alpine02,并默认连接到bridge网桥上。

docker run -dit --name alpine01 alpine ashdocker run -dit --name alpine02 alpine ash

没有指定 --network标志,两个容器都将连接到默认bridge网络。

c6aab1e0529c32979911a3c8f78f1458.png

两容器已经正常启动如下:

dd00cbd3292a6e87c8f750253822673c.png

3. 检查容器alpine01和容器alpine02是否正确连接到bridge网桥上。

docker network inspect bridge
a26622ae68ad45efce5fb8e72270a83e.png

上图可看出,默认网桥bridge的网关是172.17.0.1,子网:171.17.0.0/16

d5050675eff1bbc9adbafa7d3ea11daa.png

上图可以看到,容器alpine01和容器alpine02已经连接到bridge默认网桥上,且IP分配的IP地址分别是:172.17.0.4和172.17.0.5

4. 容器alpine01和容器alpine02连通性测试。

4.1进入容器alpine01内部

docker attach alpine01
d29f83007e21af60d974aac32f3bc54c.png

4.2连通性测试ping外网和默认网桥内的其他节点。

ping -c 2 www.baidu.com
5812fc0d69d29ba85c57d9c711faf4ec.png
ping -c 2 172.17.0.5
1280fd2c9945fc26fd2a40129ab110ae.png

从以上两个截图可以看出,内外均能连通。

使用用户自定义的桥接网络

1. 创建自定义网络alpine-net;

docker network create --driver bridge alpine-net
2f30854289cbe0eabdb7c3e7dcf177c7.png

2. 查看alpine-net网络的详细情况;

docker network inspect alpine-net
405e6734fd0254f27216e3074f25f3f9.png

自定义桥接网络alpine-net的网关是:172.22.0.1,子网:172.22.0.0/16

3. 在alpine-net上创建三个容器alpine03、alpine04和alpine05;

docker run -dit --name alpine03 --network alpine-net alpine ashdocker run -dit --name alpine04 --network alpine-net alpine ashdocker run -dit --name alpine05 --network alpine-net alpine ash
9c60ac84f9305fb04a15d25a6bac791d.png

4. 再次查看alpine-net网络详情;

e6a4968127db0f093e5d4d121183ccc5.png

上图可以看到,容器alpine03、alpine04和容器alpine05已经连接到alpine-net网桥上,且分配的IP地址分别是:172.22.0.2、172.22.0.3和172.22.0.4

5. 连接alpine05到默认网桥bridge上;

docker network connect bridge alpine05

6. 再次查看bridge网络详情;

docker network inspect bridge
a53b20b8c15bf2fd3ce2973d118f0365.png

从上图可以看出,alpine05成功连接到bridge网桥上,IP地址为:172.17.0.6

7. 连通性测试

7.1进入容器alpine03

docker container attach alpine03

7.2测试与外网www.baidu.com以及内网172.22.0.3(alpine04)、172.22.0.4(alpine05)的连通性

ad64bbf6e4dc53554d6fa358b87a4bf8.png

由上图可以看出自定义网桥网络alpine-net内的节点与外网和内网中的其他节点均能ping通。

7.3 测试alpine-net 和 bridge之间的连通性

7.3.1进入alpine05

docker attach alpine05

7.3.2 ping alpine04(alpine-net中的节点)

Ping alpine04Ping 172.22.0.3

7.3.3 ping alpine01(bridge中的节点)

Ping alpine01Ping 172.17.0.4
1b35043895e80bbde5b929d0682b12ce.png

从上图连通性测试结果来看,alpine05可以通过容器名或IP连通alpine-net网络中的任何节点,而对创建了链接的另一个网络bridge内的节点,只能通过IP地址连接访问。为什么呢?原因可以在《Docker桥接网络入门》中自行查找!

今天的分享就到这里,欢迎大家关注、收藏、转发、评论。谢谢大家支持!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值