Docker-None & Host 網絡
本節介紹None&Host網絡。
1.前言
前面我們介紹了bridge network,本小節繼續介紹none和host。這兩個比較簡單,也不太常用。安裝Docker時自動創建了三個網絡:
[root@docker1 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
c1bb643c9c5a bridge bridge local
59364623cee2 host host local
fb704391fb47 none null local
2.None網絡
使用none網絡的容器,只有一個lo網卡,路由表為空。也就是說這類容器是無法與其他容器通信的,是完全被隔離的容器。
它的用途是執行主機範圍內的計算,還可以被其它network plugin(calico, weave)用來禁用docker自身的網絡,進而提供network plugin的network stack。
使用none網絡創建一個容器,docker run -it -d --network=none --name=testnone busybox
然後查看網卡:
[root@docker1 ~]# docker exec -it testnone sh
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
可以發現該容器內只有一個lo網卡,路由表為空。
3.Host網絡
3.1 介紹
用nginx鏡像創建一個容器,使用host網絡。命令:docker run -it -d --network=host --name=testhost nginx
進入容器,執行ip a或ip r,看到的結果和在host直接執行的結果一樣。
測試:在Host上執行curl 127.0.0.1:80或curl 192.168.0.11:80,返回nginx歡迎信息。但是在其他機器上是訪問不通的。
注意:
- 使用host網絡的容器,不會被分配IP地址,因為它直接使用Host的IP地址;
- 使用host網絡,publish port功能無效。
4.小結
- 本文介紹了除bridge外的另外兩種網絡,none和host,了解即可。
下一節,我們介紹docker原生的overlay網絡。點擊此處回到docker系列文章目錄。
作者原創,轉載請聲明出處!
本人微信公眾號同步更新雲計算、容器、網絡、編程等文章,歡迎關注!