真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

docker網(wǎng)絡(luò)實現(xiàn)

1、在純Docker的環(huán)境,Docker支持4類網(wǎng)絡(luò)模式:
● host模式:使用宿主機的IP和端口
● container模式:和已存在的容器共享網(wǎng)絡(luò)
● none模式: 不進行網(wǎng)絡(luò)配置
● bridge模式: 默認(rèn)模式,使用橋接網(wǎng)絡(luò),Kubernetes使用此模式。
2、Docker 網(wǎng)絡(luò)模型

創(chuàng)新互聯(lián)是專業(yè)的東坡網(wǎng)站建設(shè)公司,東坡接單;提供成都網(wǎng)站制作、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行東坡網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

通過上圖,可以清楚的表示容器的網(wǎng)絡(luò)結(jié)構(gòu),其中容器中的網(wǎng)卡eth0和綁定在Docker0網(wǎng)橋上的vethxxx設(shè)備是一對veth設(shè)備對。其中vethxxx由于綁定到docker0網(wǎng)橋,所以沒有IP地址,容器中的eth0分配了和docker0同一網(wǎng)段的地址,這樣就實現(xiàn)了容器的互聯(lián)。

3、查看運行兩個容器的宿主:

 # ip a

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 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:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:15:c2:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.17/24 brd 192.168.20.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe15:c212/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0:  mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:fa:6f:13:18 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:faff:fe6f:1318/64 scope link 
       valid_lft forever preferred_lft forever
7: veth47e9040@if6:  mtu 1500 qdisc noqueue master docker0 state UP 
    link/ether f2:4e:50:a5:fb:b8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::f04e:50ff:fea5:fbb8/64 scope link 
       valid_lft forever preferred_lft forever
19: veth46fb1f6@if18:  mtu 1500 qdisc noqueue master docker0 state UP 
    link/ether 7a:96:bc:c7:03:d8 brd ff:ff:ff:ff:ff:ff link-netnsid 1
    inet6 fe80::7896:bcff:fec7:3d8/64 scope link 
       valid_lft forever preferred_lft forever

4、通過查看橋接網(wǎng)卡信息,可以驗證這兩個veth綁定在docker0上:

# brctl  show
bridge name bridge id       STP enabled interfaces
docker0     8000.0242fa6f1318   no      veth46fb1f6
                                        veth47e9040

5、查看容器的network namespace

# docker inspect 506a694d09fb|grep Pid
            "Pid": 2737,
            "PidMode": "",
            "PidsLimit": 0,

# mkdir /var/run/netns

# ln -s /proc/2737/ns/net /var/run/netns/506a694d09fb

# ip netns list
506a694d09fb (id: 0)
6d9742fb3c2d (id: 1)

分別查看兩個容器的IP:

# ip netns exec 506a694d09fb ip a 
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 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
6: eth0@if7:  mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 scope global eth0
       valid_lft forever preferred_lft foreve

# ip netns exec 6d9742fb3c2d ip a 
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 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
18: eth0@if19:  mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 scope global eth0
       valid_lft forever preferred_lft forever

可以發(fā)現(xiàn)這兩個容器屬于不同網(wǎng)絡(luò)命名空間,但是在同一網(wǎng)段,通過veth設(shè)備對,綁定docker0互聯(lián)。
通過ethtool -S veth-name 可以查看到對應(yīng)的peer端,這里就不再演示,其實通過veth的名稱(vethxxx@ifNO)也可以發(fā)現(xiàn)所指的接口信息。

6、如果執(zhí)行ip netns exec命令報錯,說明docker把網(wǎng)絡(luò)netns又隱藏了一層,可以先進入docker守護進程的mount命名空間,在進入對應(yīng)的網(wǎng)絡(luò)命名空間,執(zhí)行下面的nsenter命令。

[root@jumpserver ~]# nsenter -t 6807 -m nsenter --net=/var/run/docker/netns/a4fdba0d4cd4 ip add
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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
46: eth0@if47:  mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:2/64 scope link 
       valid_lft forever preferred_lft forever

6807為docker主進程pid,可以通過pstree -p命令獲取。

參考文章:
https://blog.51cto.com/tryingstuff/2165805


本文名稱:docker網(wǎng)絡(luò)實現(xiàn)
本文URL:http://weahome.cn/article/jegcgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部