docker網絡bridge、host、none

docker默認有3中網絡bridge、host、none

bridge橋接網絡

docker安裝成功後,會在宿主機創建一個網橋docker0,可以將網橋docker0理解爲一個虛擬的交換機

運行一個nginx容器

docker run --name web -d nginx

安裝bridge-utils

yum install bridge-utils

 

看上圖,網橋docker0連接了兩個端口vethe1db678、if10。

可以認爲vethe1db678、if10是一對網卡,這對網卡之間可以通信,並且一端網卡插在docker0交換機中,另一端連接nginx容器,宿主機和容器就能通信。

查看容器ip    docker inspect web 

訪問容器

curl 172.17.0.2

 

創建一個busybox  

docker run -d --name=busybox busybox /bin/sh -c "while true; do sleep 3600;done"

docker exec -it busybox /bin/sh

在busybox中可以ping通另一個容器nginx

ping 172.17.0.2

 

容器間通信過程:

創建busybox後,也會再創建一對網卡vethe447c46、if14,一端插在交換機docker0上,一端連接busybox容器。

busybox的請求發送到docker0後,docker0將請求轉到nginx中。

 

Host網絡表示容器使用物理機的網絡命名空間。物理機正在使用的端口,容器不能使用;容器正在使用的端口,物理機不能使用

none即沒有網絡,容器與宿主機、容器與容器之間無法通信。用於運行一些不需要網絡的任務,比如說批處理數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章