Docker筆記:一篇學會Docker網路知識

語言: CN / TW / HK

今天給大家介紹docker的網路知識,歡迎大家互相交流學習!

1、docker網路介紹

當我們的伺服器成功安裝docker並啟動程序後,就會產生一個docker0的虛擬網橋,本質為Linux網橋(預設為橋接模式),使用的通訊技術是Veth-pair技術.

當我們每啟動一個容器,docker就給對應容器分配一個eth0,並能夠橋接到docker0網絡卡。這個時候可以把docker0看作為路由器,每個容器可以看作為連線路由器的網路裝置,docker0用來管理每個容器的和docker0通訊的對映關係。

檢視網路資訊;

ip addr

具體如下圖:

lo:表示本地迴環地址

dockers0:表示docker容器安裝自動產生的docker0地址。

2、測試容器和宿主主機的通訊

2.1 宿主主機可以ping通 docker0

ping 172.17.0.1

執行效果如下圖

2.2 容器內部ping宿主主機也可以ping通

ping 192.168.0.116

2.3 dockers中nginx解決沒有ping命令的問題

大家如果安裝的nginx沒有ping命令的話,可以採用下面的兩條命令安裝ping。

apt-get update #獲取更新軟體源

apt install iputils-ping #安裝ping命令

2.4 容器之間也可以互相ping通

-- 獲取docker所有容器的IP地址
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

nginxtest 容器內IP是  172.17.05

nginxtest02 容器內IP是  172.17.06

測試一下是否能夠ping通

docker exec -it nginxtest /bin/bash
ping 172.17.0.6

docker exec -it nginxtest02 /bin/bash
ping 172.17.0.5

3、evth-pair技術簡介

evth-pair就是一對虛擬裝置介面,它們都是成對出現的,一端連著協議,一端彼此相連,所以可以通訊。evth-pair可以充當一個橋樑。

4、Docker網路總結

Docker 使用的是Liunx的橋接原理,宿主機中是一個Docker容器的網橋 docker0。Docker 中所有的網路介面的是虛擬的,虛擬的轉發效率高,

docker容器網橋的生成周期:docker容器刪除,對應的一對網橋就沒了。