docker - 网络2
  KRsXEGSB49bk 2023年11月02日 43 0

3.2 查看宿主机网络环境:

$ ip a
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:7d:a8:0b:18 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
6: veth0c0140e@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
    link/ether 4a:35:f2:f8:7a:e6 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::4835:f2ff:fef8:7ae6/64 scope link
8: veth205c19e@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
    link/ether a2:3b:b5:d1:cd:56 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet6 fe80::a03b:b5ff:fed1:cd56/64 scope link

说明:

①. docker0是Docker服务默认会创建一个docker0网桥(其上有一个 docker0内部接口),它在内核层连通了其它的物理或虚拟网卡,可以将所有容器和本地主机都放到同一个物理网络.

②. Docker默认指定了docker0接口的IP地址和子网掩码,让主机和容器之间可以通过网桥相互通信,还给出了MTU(接口允许接收的最大传输单元),通常是1500 Bytes,或宿主主机网络路由上支持的默认值.

③. 宿主机上查看除了本机网卡还有4端口docker0、6端口veth0c0140e、8端口veth205c19e.

3.3 查看test1容器中的网络环境:

$ docker exec -it test1 /bin/sh
# ip a
......
5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0

3.4 查看bridge信息:

$ apt-get install -y bridge-utils
$ brctl show
bridge name  bridge id          STP enabled   interfaces
docker0      8000.02427da80b18  no            veth0c0140e
                                              veth205c19e

3.5 说明:

container要怎样连到docker的bridge上面(docker0端口)?

①. docker0的namespace是宿主机的.宿主机的6端口veth0c0140e是负责连到docker0上面的.

②. test1容器也有自己的namesapce.这两个namespace要连在一起需要一对veth pair,而test1容器的5端口eth0@if6与宿主机的6端口veth0c0140e是一对.通过这一对veth pair就可以连接到了宿主机docker0上面.
如图:
①. 两个container各有一对veth pair(单独的namespace),通过连接在docker0 bridge(宿主机的namespace).
②. 类似两台真实机器通过路由器或交换机进行局域网连接在一起.
③. docker容器可以访问internet,是做了NAT,将docker的数据包发给了宿主机,再转发出去.
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年12月11日   32   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   33   0   0 Docker
  DnoStTHsc0vp   2023年12月11日   27   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   103   0   0 Dockercentosbash
  wwLZeziuqjLR   2023年12月07日   36   0   0 Dockercentos
  aYmIB3fiUdn9   2023年12月08日   50   0   0 客户端IPNATlvs