站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        Dokcer網(wǎng)絡(luò)通信詳解,及如何利用網(wǎng)絡(luò)名稱空間模擬docker通信

        一、詳解Docker容器的通信

        默認情況下,啟動docker時會采用bridge的網(wǎng)絡(luò)鏈接方式,查看方式

        sudo docker inspect CONTAINER

        且網(wǎng)橋為docker0,docker0為啟動docker服務(wù)時會自動創(chuàng)建的一個虛擬網(wǎng)卡

        docker容器之間的通信 就是通過網(wǎng)橋鏈接方式進行的

        具體的通信方式為:

        當(dāng)我們啟動一個docker容器時,docker會自動生成一對網(wǎng)卡,一半放在docker容器內(nèi),一半放在docker0上,容器之間的通信 就是通過docker0來進行轉(zhuǎn)發(fā)

        docker還有其他的三種網(wǎng)絡(luò)模式,分別為host,container(不同容器公用網(wǎng)絡(luò)名稱空間,IPC,UTS),null,默認為bridge

        sudo docker network ls 查看網(wǎng)絡(luò)

        sudo yum install bridge-utils -y

        查看網(wǎng)橋的具體信息

        brctl show

        可以看到docker0 上鏈接了4個虛擬網(wǎng)卡

        查看主機網(wǎng)絡(luò)名稱空間中的網(wǎng)卡設(shè)備

        Ip link show

        可以看到每一個網(wǎng)卡都有@標(biāo)志,其實就是鏈接到docker的另一半網(wǎng)卡

        查看docker中的網(wǎng)橋設(shè)備

        Docker network inspect bridge

        docker中的網(wǎng)橋也是docker0

        具體查看容器的信息

        sudo docker container inspect web1

        二、采用netns來模擬實現(xiàn)docker之間的通信

        可以看到docker是通過網(wǎng)絡(luò)名稱空間來進行網(wǎng)絡(luò)隔離,不同的網(wǎng)絡(luò)名稱通過一對網(wǎng)卡進行通信,它們是如何生成對一對網(wǎng)卡并且進行通信的呢?下面一起來做這個操作

        首先下載ip包

        查看下網(wǎng)絡(luò)名稱的幫助信息

        ip netns

        Usage: ip netns list

        ip netns add NAME

        ip netns set NAME NETNSID

        ip [-all] netns delete [NAME]

        ip netns identify [PID]

        ip netns pids NAME

        ip [-all] netns exec [NAME] cmd …

        ip netns monitor

        ip netns list-id

        1.我們最開始添加兩個網(wǎng)絡(luò)名稱空間用來模擬網(wǎng)絡(luò)隔離

        Ip netns add r1

        Ip netns add r2

        2..增加一對網(wǎng)卡

        ip link add name veth1.1 type veth peer name veth1.2

        默認不會激活該對網(wǎng)卡

        可以通過ifconfig查看網(wǎng)卡是否被激活

        2.將該對網(wǎng)卡的一端移動到網(wǎng)絡(luò)名稱空間r1中

        ip link set dev veth1.2 netns r1

        查看網(wǎng)絡(luò)名稱空間r1中的網(wǎng)卡信息

        [root@localhost ~]# ip netns exec r1 ifconfig -a

        ip [-all] netns exec [NAME] cmd …

        可以修改網(wǎng)絡(luò)名稱r1中的網(wǎng)卡名稱

        [root@localhost ~]# ip netns exec r1 ip link set dev veth1.2 name eth0

        [root@localhost ~]# ip netns exec r1 ifconfig -a

        3.給veth1.1分配IP地址 并啟動

        [root@localhost ~]# ifconfig veth1.1 10.1.0.1/24 up

        4.給r1網(wǎng)絡(luò)名稱空間中的eth0 添加ip 并激活

        ip netns exec r1 ifconfig eth0 10.1.0.2/24 up

        5.將veth1.1網(wǎng)卡 移至網(wǎng)絡(luò)名稱空間r2

        [root@localhost ~]# ip link set dev veth1.1 netns r2

        6.激活veth1.1

        [root@localhost ~]# ip netns exec r2 ifconfig veth1.1 10.1.0.3/24 up

        7.在r2中ping r1 中的eth0網(wǎng)卡

        最后成功模擬了不同網(wǎng)絡(luò)名稱之間的通信,docker正式采用這種了網(wǎng)絡(luò)名稱隔離的方式進行網(wǎng)絡(luò)隔離

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产小呦泬泬99精品| 午夜天堂精品久久久久| 亚洲国产一成久久精品国产成人综合| 国产亚洲欧美精品久久久| 久久精品国产亚洲Aⅴ香蕉| 国产精品麻豆高清在线观看| 中文字幕精品无码一区二区| 成人国产一区二区三区精品| AAA级久久久精品无码片| 亚洲国产精品成人网址天堂| 成人精品一区二区久久久| 久久久精品2019免费观看| 精品国产呦系列在线观看免费| 久久国产精品99久久久久久老狼 | 欧美日韩精品乱国产538| 精品人妻中文av一区二区三区 | 日韩精品一区二区三区四区| 国产精品三级国产电影| 亚洲精品你懂的在线观看| 欧美亚洲另类精品第一页| 国自产精品手机在线观看视| 93精91精品国产综合久久香蕉| 精品视频一区二区三区在线观看| 精品国产精品国产偷麻豆| 久久久一本精品99久久精品66 | 欧美精品亚洲人成在线观看 | 日韩精品久久久久久久电影蜜臀| 亚洲欧美日韩另类精品一区二区三区 | 国产精品福利电影一区二区三区四区欧美白嫩精品 | 亚洲国产精品久久久天堂| 亚洲福利精品电影在线观看| 欧美人与性动交α欧美精品成人色XXXX视频 | 久久99精品免费一区二区| 精品福利一区二区三区| 精品一区二区三区免费视频| 精品久久久久中文字幕一区| 精品人妻少妇一区二区三区在线| 精品国产午夜福利在线观看| 欧美日韩国产精品 | 精品国精品国产| 中文字幕亚洲精品|