docker網絡模式
-
1.Nat ( network address translation) 橋接bridge模式 docker容器的默認模式
網絡資源隔離
無需手動配置
可以訪問外網
外界無法直接訪問容器ip
低性能
端口管理麻煩 (需要端口映射)
容器訪問外界使用的是iptables的SNAT規則
外界訪問容器使用的是DNAT規則
ifconfig 其中docker0地址是docker容器的網關
查看路由表 route -n
使用端口映射纔會生iptables規則,查看iptables命令: iptables -t nat -L -n -
2.host
共享宿主機網絡
網絡環境無隔離
網絡資源無法統計
端口不易管理
使用場景:就相當於在宿主機多跑了一個進程,比如跑了個apache nginx。
–net=host -
3.other container
容器A是nat模式,容器B使用容器A的網絡模式,容器a和容器b的ip和mac地址完全一樣。
與宿主機網絡空間隔離
容器間共享網絡空間
使用場景:兩個容器網絡訪問特別頻繁
–net=container:xxxxxx -
4.none
無網絡配置,可自行配置
–net=none -
5.overlay.
多機網絡
其他
-
基於容器A,啓動container網絡模式的容器B: docker run -it --name xxx --net=container:容器A 鏡像名
-
次性刪除多個容器:docker rm -f $(docker ps -aq) 其中-q是返回所有容器id
-
網絡地址轉換NAT 實現私有ip和公網ip的轉換
-
防火牆iptables
-
ping和telnet
ping驗證ip的可達性
telnet驗證服務的可用性 -
兩個容器之間的通信
通過docker0鏈接到一起,每個容器和docker0都由一對veth進行鏈接 -
容器和互聯網的通信
容器通過veth對鏈接到docker0,docker0通過NAT進行網絡地址轉換,進而訪問外網。