1.7 Docker-網絡管理
阿新 • • 發佈:2018-08-22
eat 物理機 分享 web服務 橋模式 模式 火墻 網絡隔離 cal
1.7 網絡管理
容器網卡的三種工作模式:bridge、host、none。
bridge(網橋模式)
物理機就像一個虛擬交換機,做容器與容器之間,容器與外網通信的橋梁。當運行容器時,Docker會在物理機上創建Docker0和vethx虛擬網卡,Docker0是一個三層接口擁有容器網段的IP地址,用於物理機與容器通信,而vethx是一個二層虛擬接口,用於連接容器網卡。默認情況下容器會使用MASQUERADE(動態SNAT)的方式將容器內部網絡轉換成物理機網卡網段去訪問到外網。
因為是個虛擬交換機,當然如果你想要內網其他主機訪問到容器內部的話,則可以手動增加一條到容器網段的路由即可。
如果你想要發布一個WEB服務或其他服務,你只需要在運行容器時使用“-p <端口:端口>”或“-P”增加端口映射,則Docker會自動使用物理機的IPtables防火墻做DNAT地址轉換,當你訪問物理機的對應IP+端口時,實際訪問的是容器中的應用服務。
host(主機模式)
容器完全復制物理機網絡與外界通信。容器與容器之間無法訪問。
none(無網絡模式)
無網絡模式,容器無法訪問其他容器及外部網絡,只可以自己訪問自己。
1、查看容器網絡
默認情況下容器使用“bridge”網絡。
[root@localhost ~]# docker network ls 網絡ID 網絡名 網絡設備類型 作用範圍 NETWORK ID NAME DRIVER SCOPE 08934fc06219 bridge bridge local 7288591dd537 host host local 0e74f42e99d3 none null local
2、創建自定義容器網絡
可以創建一個自定義的“bridge”網絡,使容器與容器之間網絡隔離,互不影響。默認情況下“host”網絡只允許有一個,所以一般情況下我們都是創建的自定義網絡都是“bridge”。
語法:docker network create [選項] 網絡名
選項:
-d <drive_type> 指定網絡設備類型,默認是"bridge"
示例:
[root@localhost ~]# docker network create -d bridge my-network
3、刪除自定義容器網絡
語法:docker network rm 網絡名 示例: [root@localhost ~]# docker network rm my-network
4、刪除所有未使用的容器網絡
語法:docker network prune [選項]
選項:
-f 強制刪除
示例:
[root@localhost ~]# docker network prune
5、查看一個容器網絡設備的詳細信息
語法:docker network inspect 網絡名
示例:
[root@localhost ~]# docker network inspect bridge
6、容器運行時手動指定容器網絡
[root@localhost ~]# docker run -d -p 80:80 --name "WEB-NGINX" --network my-network nginx:latest
1.7 Docker-網絡管理