回覆列表
-
1 # 千鋒頭號粉絲
-
2 # xcbeyond
1、採用-v引數,可將Docker容器中的埠對外進行對映,就可以實現
docker容器如何與外部網路進行通訊。
2、docker容器間互聯:建立一個網路,可將不同容器共用該網路,透過容器的主機名進行互聯,相當於是在同一個區域網中的通訊。
1、採用-v引數,可將Docker容器中的埠對外進行對映,就可以實現
docker容器如何與外部網路進行通訊。
2、docker容器間互聯:建立一個網路,可將不同容器共用該網路,透過容器的主機名進行互聯,相當於是在同一個區域網中的通訊。
Docker容器是一個開源的應用容器引擎,讓開發者可以以統一的方式打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何安裝Docker引擎的伺服器上,也可以實現虛擬化。
隨著雲計算的飛速發展以及企業需求的多樣化,Docker容器技術成為雲計算人才必備的技能之一。很多人想要快速掌握Docker容器技術,接下來的杭州雲計算學習進階就給大家講解Docker容器的四種網路模式。
1、closed container 封閉式網路模式
沒有網路協議棧的通訊使用none模式,Docker容器擁有自己的Network Namespace,但是,並不為Docker容器進行任何網路配置。也就是說,這個Docker容器沒有網絡卡、IP、路由等資訊,只有lo網路介面。需要我們自己為Docker容器新增網絡卡、配置IP等。
2、bridged container 橋接式網路模式
各個容器之間網路協議棧單獨分離當Docker啟動時,會自動在主機上建立一個docker0虛擬網橋,實際上是Linux的一個bridge,可以理解為一個軟體交換機,它會在掛載到它的網口之間進行轉發。同時,Docker隨機分配一個本地未佔用的私有網段(在 RFC1918 中定義)中的一個地址給docker0介面。當建立一個Docker容器的時候,同時會建立了一對veth pair 介面。這對介面一端在容器內,即eth0;另一端在本地並被掛載到docker0網橋,名稱以veth開頭。透過這種方式,主機可以跟容器通訊,容器之間也可以相互通訊。Docker就建立了在主機和所有容器之間一個虛擬共享網路。
3、joined container 聯合掛載式網路模式
容器之間可以共享網路協議棧,即可以透過套接字來進行通訊這個模式指定新建立的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。新建立的容器不會建立自己的網絡卡,配置自己的IP,而是和一個指定的容器共享 IP、埠範圍等。同樣,兩個容器除了網路方面,其他的如檔案系統、程序列表等還是隔離的。兩個容器的程序可以透過lo網絡卡裝置通訊。
4、opentainer container 開放式網路模式
與主機共享網路協議棧Host模式使用是在容器啟動時候指明--network host,此時容器共享宿主機的Network Namespace,容器內啟動的埠直接是宿主機的埠,容器不會建立網絡卡和IP,直接使用宿主機的網絡卡和IP,但是容器內的其他資源是隔離的,如檔案系統、使用者和使用者組。直接使用宿主機網路。同樣啟動一個nginx,此時共享主機網路,根據情況來使用,這樣子也不用做埠轉發,網路傳輸效率會比較高。