docker網路模式

2022-07-22 07:03:12 字數 1349 閱讀 5935

我們在使用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 網路模式

host 模式並沒有為容器建立乙個隔離的網路環境。該模式下的docker 容器會和host宿主機共享同乙個網路namespace,docker container可以和宿主機一樣,使用宿主機的eth0,實現和外界的通訊。host模式特點包括 容器沒有隔離的 network namespace 容器的...

docker基礎 docker網路模式

docker啟動之後,會在宿主機虛擬乙個docker容器網橋 docker0 docker啟動乙個容器時會根據docker網橋的網段分配給容器乙個ip位址,稱為container ip,其實,總共有5種,常用的是以下4種 docker網路模式 配置 說明 host模式 net host 容器和宿主機...

Docker網路模式bridge

1.使用 bridge 的驅動 來建立bridge的網路 docker network create driver 網路型別 網路名稱 docker network create driver bridge bridge panda2.建立bridge 設定閘道器與 子網的網路docker netw...