『中級篇』 Docker Bridge詳解(26)

原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
原文連接地址:『中級篇』 Docker Bridge詳解(26)node

上節主要學習了network-namespace,並建立了network-namespace,並把2個network-namespace鏈接在一塊兒,咱們也演示了建立一個容器test1和test2,其實在建立容器的同時也建立了對應的一個network-namespace,由於對應的一個容器他有本身的獨立網絡空間。test1經過exec ip a的方式查看對應的ip,和test2 經過exec ip a的方式查看對應的ip。他們以前是互相能夠ping通的。linux

到底docker的網絡是如何配置的
sudo service docker restart
sudo docker container start test1
sudo docker container start test2
sudo docker docker exec -it test1 /bin/sh
ping www.baidu.com
複製代碼
  • 這裏的代碼緊接上一節,vagrant啓動虛擬機docker-node1,經過docker-node1啓動裏面的容器test1 和test2,當進入test1容器,ping baidu發現能夠ping通。這是什麼原理呢,確定是經過能夠轉接的方式,容器---虛擬機----宿主機--baidu。





爲了更好的瞭解docker網絡
  • 中止test2,刪除test2
sudo docker ps
sudo docker stop test2
sudo docker rm test2
sudo docker ps
複製代碼

  • docker 網絡

能夠看到一個 ,這也是linux中常見的一種網絡結構。橋接的形式docker

sudo docker network ls
複製代碼

對於test1 來說,他是經過bridge的方式bash

sudo docker inspect test1
複製代碼

ip a
複製代碼

這個機器有5個網路,除了lo,eth0,eth1,docker0,veth8765ce0@if5,上節課講過veth實際上是鏈接了2個networknamespace,veth8765ce0@if5是負責鏈接docker0上邊的,容器test1裏面也應該有個和veth鏈接的。網絡


sudo docker exec test1 ip a
複製代碼

eth0@if6 和外邊的veth8765ce0@if5 實際上是一對。學習


查看他們的關係
sudo yum install -y bridge-utils
#安裝後能夠運行brctl這個命令了
brctl
複製代碼


brctl show
複製代碼

由於目前就一個test1的橋接,因此就顯示一個。ui


sudo docker run -d --name test2 busybox /bin/sh -c "while true; do sleep 3600;done"
brctl show
sudo docker network inspect bridge
ip a
複製代碼

多建立了容器,其實多了一對veth,容器內多了veth,宿主內也增長了veth,其實就相似一個線,他們互相鏈接。spa





test1 和test2 以前經過docker0,docker0 相似test1和test2以前的路由器,docker0 在經過nat的eth0鏈接互聯網vagrant


PS:主要理解容器以前如何的互相訪問,容器和外邊的世界如何通訊。3d

image

相關文章
相關標籤/搜索