Docker筆記:一篇學會Docker網絡知識
今天給大家介紹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容器刪除,對應的一對網橋就沒了。