elasticsearch入門系列">elasticsearch入門系列
802
2025-04-03
網絡(network)是為了實現容器間或容器與外接進行通信,docker提供了6種網絡模式來解決不同場景下的連接方案,分別是bridge、host、overlay、macvlan、none、network plugin。
當您需要多個容器在同一個docker主機上進行通信時,用戶定義的橋接網絡是最佳選擇。
當網絡堆棧不應與Docker主機隔離時,主機網絡是最好的,但您希望隔離容器的其他方面。
當您需要在不同Docker主機上運行的容器進行通信時,或者當多個應用程序使用swarm服務協同工作時,覆蓋網絡是最佳選擇。
當您從VM設置遷移或需要容器看起來像網絡上的物理主機時,Macvlan網絡是最佳的,每個主機都具有唯一的MAC地址。
第三方網絡插件允許您將Docker與專用網絡堆棧集成。
bridge模式是默認容器啟動默認分配的網絡方式,容器使用獨立的網絡命名空間(namespace),并連接到docker0虛擬網卡上。
host模式是容器與Docker主機共享同一網絡命名空間(namespace),Docker主機的網絡協議棧、路由表、iptables規則、網卡、IP、端口等等都是共享的。容器跟宿主機都在同一網絡視圖下。這個模式很好的解決了容器與外界通信地址轉換的問題,可以直接使用宿主機的IP進行通信,那么這里的網絡流量和壓力走的都是宿主機的網卡,性能會比較高。不過這個有風險,因為容器跟宿主機是共享一套網絡機制,沒有隔離。那么會引起網絡資源與宿主機的競爭和沖突關系。規模小的場景,可以使用這種模式。主機網絡驅動程序僅適用于Linux主機,不支持Windows及Mac平臺。
overlay模式是多個Docker主機之間的分布式網絡解決方案。該網絡位于特定于主機的網絡之上,允許連接到它的容器(包括群集服務容器)安全地進行通信。Docker透明地處理每個數據包與Docker守護程序主機和正確的目標容器之間正確的的路由。
macvlan跟overlay一樣也是跨主機互聯的驅動方案。在某些大流量或性能要求較高的場景下,希望直接連接到物理網絡,在這種情況下,您可以使用macvlan網絡驅動程序為每個容器的虛擬網絡接口分配MAC地址,使其看起來像是直接連接到物理網絡的物理網絡接口。
none模式用于完全禁用容器上的網絡堆棧,容器單獨使用一個網絡命名空間(namespace),僅創建回環設備,如果需要容器連接其他網絡,則需要手動進行網絡相關的設置,靈活性最高但也是最復雜。
以上五種驅動都是docker原生提供的,如果以上五種不能滿足你的要求,除了原生提供,還支持第三方的驅動模式接入。比如常用的 flannel、pipework、weave 和 calico 等等。
顯示網絡列表
docker network ls
創建網絡
docker network create
可選參數 --config-from 復制其他網絡配置 --driver 指定網絡模式 --gateway 指定網關 --internal 限制只能內部訪問 --ip-range 從子網范圍分配容器IP --ipv6 啟用IPv6網絡 --subnet 指定網段
1
2
3
4
5
6
7
8
配置容器連接到指定的網絡
docker network connect
取消容器連接到指定的網絡
docker network disconnect
查看網絡詳情
docker network inspect
刪除網絡
docker network rm
清理未使用的網絡
docker network prune
啟動容器時指定網絡
docker run -it --network=
采用網絡名稱進行通訊
docker network create lamp-network
docker run -it --network lamp-network --network-alias apache centos:latest
docker run -it --network lamp-network --network-alias php centos:latest
docker run -it --network lamp-network --network-alias mysql centos:latest
Docker 容器 網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。