1. 程式人生 > 其它 >Docker的4種網路模式詳細介紹

Docker的4種網路模式詳細介紹

docker run建立Docker容器時,可以用–net選項指定容器的網路模式,Docker有以下4種網路模式: bridge模式:使用–net =bridge指定: host模式:使用–net =host指定; none模式:使用–net =none指定; container模式:使用–net =container:NAMEorID指定。   1) bridge模式: bridge模式是Docker預設的網路設定,此模式會為每一個容器分配Network Namespace、設定IP等,並將並將一個主機上的Docker容器連線到一個虛擬網橋上。當Docker server啟動時,會在主機上建立一個名為docker0的虛擬網橋,此主機上啟動的Docker容器會連線到這個虛擬網橋上。虛擬網橋的工作方式和物理交換機類似,這樣主機上的所有容器就通過交換機連在了一個二層網路中。接下來就要為容器分配IP了,Docker會從RFC1918所定義的私有IP網段中,選擇一個和宿主機不同的IP地址和子網分配給docker0,連線到docker0的容器就從這個子網中選擇一個未佔用的IP使用。如一般Docker會使用172.17.0.0/16這個網段,並將172.17.42.1/16分配給docker0網橋(在主機上使用ifconfig命令是可以看到docker0的,可以認為它是網橋的管理埠,在宿主機上作為一塊虛擬網絡卡使用)。 2) host模式:如果啟動容器的時候使用host模式,那麼這個容器將不會獲得一個獨立的Network Namespace,而是和宿主機共用一個Network Namespace。容器將不會虛擬出自己的網絡卡,配置自己的IP等,而是使用宿主機的IP和埠。 3) none模式:在none模式下,Docker容器擁有自己的Network Namespace,但是,並不為Docker容器進行任何網路配置。也就是說,這個Docker容器沒有網絡卡、IP、路由等資訊。需要我們自己為Docker容器新增網絡卡、配置IP等。 4) container模式: 這個模式指定新建立的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。新建立的容器不會建立自己的網絡卡,配置自己的IP,而是和一個指定的容器共享IP、埠範圍等。同樣,兩個容器除了網路方面,其他的如檔案系統、程序列表等還是隔離的。兩個容器的程序可以通過lo網絡卡裝置通訊。