Docker 四種網路模式

2022-07-01 22:03:10 字數 2731 閱讀 8387

我們在使用docker run建立docker容器時,可以用--net選項指定容器的網路模式,docker有以下4種網路模式:

· host模式,使用--net=host指定。

· container模式,使用--net=container:name_or_id指定。

· none模式,使用--net=none指定。

· bridge模式,使用--net=bridge指定,預設設定。

1 host模式

docker使用的網路實際上和宿主機一樣,在容器內看到的網絡卡ip是宿主機上的ip。

眾所周知,docker使用了linux的namespaces技術來進行資源隔離,如pid namespace隔離程序,mount namespace隔離檔案系統,network namespace隔離網路等。乙個network namespace提供了乙份獨立的網路環境,包括網絡卡、路由、iptable規則等都與其他的network namespace隔離。乙個docker容器一般會分配乙個獨立的network namespace。但如果啟動容器的時候使用host模式,那麼這個容器將不會獲得乙個獨立的network namespace,而是和宿主機共用乙個network namespace。容器將不會虛擬出自己的網絡卡,配置自己的ip等,而是使用宿主機的ip和埠。

2 container模式

多個容器使用共同的網路看到的ip是一樣的。

在理解了host模式後,這個模式也就好理解了。這個模式指定新建立的容器和已經存在的乙個容器共享乙個network namespace,而不是和宿主機共享。新建立的容器不會建立自己的網絡卡,配置自己的ip,而是和乙個指定的容器共享ip、埠範圍等。同樣,兩個容器除了網路方面,其他的如檔案系統、程序列表等還是隔離的。兩個容器的程序可以通過lo網絡卡裝置通訊。

3 none模式

這種模式下不會配置任何網路。

這個模式和前兩個不同。在這種模式下,docker容器擁有自己的network namespace,但是,並不為docker容器進行任何網路配置。也就是說,這個docker容器沒有網絡卡、ip、路由等資訊。需要我們自己為docker容器新增網絡卡、配置ip等。

4 bridge模式

bridge模式是docker預設的網路設定,此模式會為每乙個容器分配network namespace、設定ip等,並將乙個主機上的docker容器連線到乙個虛擬網橋上。

類似於vmware的nat網路模式。同乙個宿主機上的所有容器會在同乙個網段下,相互之間是可以通訊的。

---當才華撐不起你的野心的時候,請努力!---

我們在使用docker run建立docker容器時,可以用--net選項指定容器的網路模式,docker有以下4種網路模式:

· host模式,使用--net=host指定。

· container模式,使用--net=container:name_or_id指定。

· none模式,使用--net=none指定。

· bridge模式,使用--net=bridge指定,預設設定。

1 host模式

docker使用的網路實際上和宿主機一樣,在容器內看到的網絡卡ip是宿主機上的ip。

眾所周知,docker使用了linux的namespaces技術來進行資源隔離,如pid namespace隔離程序,mount namespace隔離檔案系統,network namespace隔離網路等。乙個network namespace提供了乙份獨立的網路環境,包括網絡卡、路由、iptable規則等都與其他的network namespace隔離。乙個docker容器一般會分配乙個獨立的network namespace。但如果啟動容器的時候使用host模式,那麼這個容器將不會獲得乙個獨立的network namespace,而是和宿主機共用乙個network namespace。容器將不會虛擬出自己的網絡卡,配置自己的ip等,而是使用宿主機的ip和埠。

2 container模式

多個容器使用共同的網路看到的ip是一樣的。

在理解了host模式後,這個模式也就好理解了。這個模式指定新建立的容器和已經存在的乙個容器共享乙個network namespace,而不是和宿主機共享。新建立的容器不會建立自己的網絡卡,配置自己的ip,而是和乙個指定的容器共享ip、埠範圍等。同樣,兩個容器除了網路方面,其他的如檔案系統、程序列表等還是隔離的。兩個容器的程序可以通過lo網絡卡裝置通訊。

3 none模式

這種模式下不會配置任何網路。

這個模式和前兩個不同。在這種模式下,docker容器擁有自己的network namespace,但是,並不為docker容器進行任何網路配置。也就是說,這個docker容器沒有網絡卡、ip、路由等資訊。需要我們自己為docker容器新增網絡卡、配置ip等。

4 bridge模式

bridge模式是docker預設的網路設定,此模式會為每乙個容器分配network namespace、設定ip等,並將乙個主機上的docker容器連線到乙個虛擬網橋上。

類似於vmware的nat網路模式。同乙個宿主機上的所有容器會在同乙個網段下,相互之間是可以通訊的。

docker的四種網路模式

docker容器間通訊 實現原理 docker使用linux橋接,在宿主機虛擬乙個docker容器網橋 docker0 docker啟動乙個容器時會根據docker網橋的網段分配給容器乙個ip位址,稱為container ip,同時docker網橋是每個容器的預設閘道器。因為在同一宿主機內的容器都接...

docker四種模式

1 host模式 眾所周知,docker使用了linux的namespaces技術來進行資源隔離,如pid namespace隔離程序,mount namespace隔離檔案系統,network namespace隔離網路等。乙個network namespace提供了乙份獨立的網路環境,包括網絡卡...

vbox的四種網路模式

一 nat模式 特點 1 如果主機可以上網,虛擬機器可以上網 2 虛擬機器之間不能ping通 3 虛擬機器可以ping通主機 此時ping虛擬機器的閘道器,即是ping主機 4 主機不能ping通虛擬機器 應用場景 虛擬機器只要求可以上網,無其它特殊要求,滿足最一般需求 二 bridged adap...