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系列文章目錄。
作者原創,轉載請聲明出處!
本人微信公眾號同步更新雲計算、容器、網路、編程等文章,歡迎關注!