Docker网络之bridge0详解

一、docker0 是本机器在docker 内的Namespace

通过追踪docker0,我们解决如下两个问题:

  1. 我们通过多个容器是如何互连的?
  2. 单个容器是如何访问外网的 ?

1、创建一个 container

docker run -d --name test1 com/library/busybox /bin/sh /bin/sh -c "while true; do sleep 3600; done"

2、查看 docker 的网络情况:  docker network ls

3、查看 test1 的网络是连接到那种 driver 上的:  docker network inspect [ bridge 的 network_id]

 输出中包含了 containers , 其中包含了 Name 为 test1 和 test2

4、查看 container的network :  ip a

  • docker0 是本机器 在docker 内的Namespace
  • docker0 下的 test1 的Namespace 为虚拟的 是 以 veth 开头的

5、查看 test1 和test2的网络 

  • docker exec test1 ip a  可以看出eth0@if33 和 veth34bd270@if32是一对

  •  docker exec test2 ip a  可以看出 eth0@if37 和 vethfef8006@if36是一对

  • 并且 veth34bd270@if32 和  vethfef8006@if36 是连到了 docker0 上

6、验证 veth85d9927@if5 是连到了 docker0 上

  安装验证工具 bridge-utils: yum install bridge-utils

  使用 brctl show

     

  interfaces 的 数值 刚好与 container test1 的对外接口 对应上

  说明 container test1 的对外接口 是通过 docker0 桥接出去的

7、桥接网络图

  

8、容器是如何访问外网的 ? 

 answer:通过 NAT 技术 查询 ip tables 然后访问的

二、手动创建bridge

2.1、bridge 的 创建

  • 创建 driver 为 bridge 的网络:docker network create -d bridge my-bridge
  • 查看创建的网络 :docker network ls
  • 查看桥接方式: brctl show

2.2、指定的连接的网络

  • 创建 容器 指定网络 为新创建的网络

docker run -d --name test3 --network my-bridge hub.c.163.com/library/busybox /bin/sh -c "while true; do sleep 3600; done"

  • 查看 创建的网络 是否有新的 interfaces:docker exec test2 ip a

  brctl show  或使用   docker network inspect my-bridge   查看

2.3、将test1 和 test2 link 到 my-bridge 上

连接语法: docker network connect [network_name] [container_name]

docker network connect my-bridge test1

  • 验证是否连接上:

docker network inspect my-bridge     此时里面的 containers 是否包含 test1 和 test3

docker network inspect bridge    此时到container 内 也包含了 test1 和 test2

此时在 test1 容器内ping test2 和 test3 的 ip 地址是通的:docker exec -it test1 /bin/sh

此时在 test2容器内ping  test3 的 ip 地址是不通的:docker exec -it test2 /bin/sh

2.4、用户创建的 network (eg:my-bridge) 内 是可以使用 ping [container_name]  

默认使用了docker link,参考文章:Docker网络之容器间关联docker link

 

发布了382 篇原创文章 · 获赞 306 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/lixinkuan328/article/details/103883699