您好,登錄后才能下訂單哦!
Docker提供幾種原生網絡,從覆蓋范圍可以分為單個host上的容器網絡和跨多個host的網絡。
Doker在安裝的時候會自動在host上創建三個網絡,使用如下命令查看
docker network ls
故名思議,none 網絡就是什么都沒有的網絡。掛在這個網絡下的容器除了 lo,沒有其他任何網卡。容器創建時,可以通過 --network=none 指定使用 none 網絡。
該網絡一般應用到一些對安全性要求高并且不需要聯網的應用,比如某個容器的唯一用途是生成隨機密碼,就可以放到 none 網絡中避免密碼被竊取
連接到 host 網絡的容器共享 Docker host 的網絡棧,容器的網絡配置與 host 完全一樣。可以通過 --network=host 指定使用 host 網絡。
在容器中可以看到 host 的所有網卡,并且連 hostname 也是 host 的。host 網絡的使用場景如下:
直接使用 Docker host 的網絡最大的好處就是性能,如果容器對網絡傳輸效率有較高要求,則可以選擇 host 網絡。當然不便之處就是犧牲一些靈活性,比如要考慮端口沖突問題,Docker host 上已經使用的端口就不能再用了。
Docker host 的另一個用途是讓容器可以直接配置 host 網路。比如某些跨 host 的網絡解決方案,其本身也是以容器方式運行的,這些方案需要對網絡進行配置,比如管理 iptables。
brige網絡是應用最廣泛的網絡類型。
Docker 安裝時會創建一個 命名為 docker0 的 linux bridge。如果不指定--network,創建的容器默認都會掛到 docker0 上。
brctl show
當前docker0上沒有任何其他網絡設備
創建一個名為net1的Bridge網絡
docker network create net1
查看net網橋,subnet已經自動配置為
docker network inspect net1
創建一個名為net2的bridge網橋,指定subnet=172.10.10.0/24
docker network create --driver bridage --subnet 172.10.10.0/24 --gateway 172.10.10.1 net2
啟動名為centos1的容器,并加入net1網絡
docker run --name centos1 -dit --network=net1 centos
啟動名為centos2的容器,并加入net2網絡
啟動名為centos3的容器,并加入net2網絡,同時指定該容器IP=172.10.10.10docker run --name centos3 -dit --network=net2 --ip 172.10.10.10 centos
分別查看3個centos容器的IP地址信息。其中cnetos2和centos3位于同一網段,centos1與前兩者位于不同網段docker inspect centos1
docker inspect centos2
docker inspect centos3
以下面這張圖來理解bridge網絡
容器主要是通過veth pair連接到 brigde網絡,它是一對成對出現的特殊網絡設備,簡單可以理解為由一根虛擬網線連接起來的一堆網卡,網卡的一頭(如eth@if34)在容器中,另外一頭(如veth38c57df)掛在網橋docker0上
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。