讲讲Docker容器间网络互联原理

本文深入探讨Docker容器间的网络互联原理,包括Docker默认网络、docker0网桥、veth-pair技术以及不同容器如何通信。通过实验和网络模型解释了容器如何通过ARP协议获取目标MAC地址,实现跨容器通信。
摘要由CSDN通过智能技术生成

一、今天我们要搞明白的实验

如上红字所描述:同一个宿主机上的不同容器之间的网络如何互通的???

二、前置网络知识

2.1、docker默认为我们创建的网络

我们安装完docker之后,docker daemon会为我们自动创建3个网络,如下:

Copy~]# docker network lsNETWORK ID     NAME                DRIVER    SCOPEe71575e3722a   bridge              bridge    localab8e3d45575c   host                host      local0c9b7c1134ff   none                null      local

其实docker有4种网络通信模型,分别是:bridge、host、none、container

默认的使用的网络模型是bridge,也是我们生产上会使用到的网络模型。

1、Docker网络入门笔记


2.2、怎么理解docker0网桥

另外,当我们安装完docker之后,docker会为我们创建一个叫docker0的网络设备

通过ifconfig命令可以查看到它,看起来它貌似和eth0网络地位相当,像是一张网卡。然而并不是,docker0其实是一个Linux网桥

Copy[root@vip ~]# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever       2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:b4:97:ee brd ff:ff:ff:ff:ff:ff    inet 10.4.7.99/24 brd 10.4.7.255 scope global noprefixroute eth0       valid_lft forever preferred_lft forever    inet6 fe80::20c:29ff:feb4:97ee/64 scope link       valid_lft forever preferred_lft forever       3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default    link/ether 02:42:db:fe:ff:db brd ff:ff:ff:ff:ff:ff    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0       valid_lft forever preferred_lft forever    inet6 fe80::42:dbff:fefe:ffdb/64 scope link       valid_lft forever preferred_lft forever

何以见得?可以通过下面的命令查看操作系统上的网桥信息

Copy ~]# yum install bridge-utils ~]# brctl showbridge namebridge idSTP enabledinterfacesdocker08000.0242f0a8c0benoveth86e2ef2vethf0a8bcb

那大家怎么理解Linux网桥的概念呢?

其实大家可以把docker0理解成一台虚拟的交换机!然后像下面这样类比着理解,就会豁然开朗

1、它好比是大学在机房上课时,老师旁边的那个大大的交换机设备。

2、把机房里的电脑都连接在交换机上,类比成docker 容器作为一台设备都连接着宿主机上的docker0。

3、把交换机和机房中的机器的ip在同一个网段,类比成docker0、和你启

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值