站長資訊網
        最全最豐富的資訊網站

        Dokcer網絡通信詳解,及如何利用網絡名稱空間模擬docker通信

        一、詳解Docker容器的通信

        默認情況下,啟動docker時會采用bridge的網絡鏈接方式,查看方式

        sudo docker inspect CONTAINER

        且網橋為docker0,docker0為啟動docker服務時會自動創建的一個虛擬網卡

        docker容器之間的通信 就是通過網橋鏈接方式進行的

        具體的通信方式為:

        當我們啟動一個docker容器時,docker會自動生成一對網卡,一半放在docker容器內,一半放在docker0上,容器之間的通信 就是通過docker0來進行轉發

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

        sudo docker network ls 查看網絡

        sudo yum install bridge-utils -y

        查看網橋的具體信息

        brctl show

        可以看到docker0 上鏈接了4個虛擬網卡

        查看主機網絡名稱空間中的網卡設備

        Ip link show

        可以看到每一個網卡都有@標志,其實就是鏈接到docker的另一半網卡

        查看docker中的網橋設備

        Docker network inspect bridge

        docker中的網橋也是docker0

        具體查看容器的信息

        sudo docker container inspect web1

        二、采用netns來模擬實現docker之間的通信

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

        首先下載ip包

        查看下網絡名稱的幫助信息

        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.我們最開始添加兩個網絡名稱空間用來模擬網絡隔離

        Ip netns add r1

        Ip netns add r2

        2..增加一對網卡

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

        默認不會激活該對網卡

        可以通過ifconfig查看網卡是否被激活

        2.將該對網卡的一端移動到網絡名稱空間r1中

        ip link set dev veth1.2 netns r1

        查看網絡名稱空間r1中的網卡信息

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

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

        可以修改網絡名稱r1中的網卡名稱

        [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網絡名稱空間中的eth0 添加ip 并激活

        ip netns exec r1 ifconfig eth0 10.1.0.2/24 up

        5.將veth1.1網卡 移至網絡名稱空間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網卡

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

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品免费久久久久电影网| 国产成人精品免费视频大全麻豆| 精品无码一区在线观看| 亚洲国产精品久久久久婷婷软件| 91久久精品91久久性色| 亚洲国产精品成人精品无码区 | 天天视频国产精品| 56prom精品视频在放免费| 99久久精品影院老鸭窝| 国产午夜无码精品免费看| 亚洲国产精品无码久久SM| 人妻无码精品久久亚瑟影视| 国产精品户外野外| 国产99精品一区二区三区免费| 久久91精品国产91久久户| 国产92成人精品视频免费| avtt天堂网久久精品| 久久99久久99精品免视看动漫| 自拍中文精品无码| 亚洲国产午夜中文字幕精品黄网站 | 久久99精品久久久久久野外| 国产A∨免费精品视频| 一区二区三区日韩精品| 99精品伊人久久久大香线蕉| 国产91精品黄网在线观看| 国产高清在线精品一本大道| 欧美日韩精品在线| 丝袜美腿国产精品视频一区| 欧美一区二区精品久久| 亚洲国产成人久久精品影视| 亚洲国产精品嫩草影院| 中文字幕亚洲精品资源网| www夜片内射视频日韩精品成人| 99精品国产福利在线观看| 国模和精品嫩模私拍视频| 精品国产一区二区三区AV性色| 久久久久国产精品三级网 | 午夜在线视频91精品| 亚洲欧美一级久久精品| 人人妻人人澡人人爽人人精品97| 精品久久久久久久久午夜福利|