Docker-None & Host 網路

本節介紹None&Host網路。

1.前言

點擊此處回到docker系列文章目錄

前面我們介紹了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歡迎資訊。但是在其他機器上是訪問不通的。
注意:

  1. 使用host網路的容器,不會被分配IP地址,因為它直接使用Host的IP地址;
  2. 使用host網路,publish port功能無效。

4.小結

  • 本文介紹了除bridge外的另外兩種網路,none和host,了解即可。

下一節,我們介紹docker原生的overlay網路。點擊此處回到docker系列文章目錄

 

作者原創,轉載請聲明出處!


本人微信公眾號同步更新雲計算、容器、網路、編程等文章,歡迎關注!

 

Tags: