亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

Docker網絡模式

2024-10-28 09:27:18
18
0

安裝Docker時會自動創建3個網絡,可以使用docker network ls命令列出這些網絡。

Docker有以下4種網絡模式:

Host模式:使用--net=host指定。

Container模式:使用--net=container:NAME_or_ID指定。

None模式:使用--net=none指定。

Bridge模式:使用--net=bridge指定,默認設置。

1、Host模式

        Docker底層使用了Linux的Namespaces技術來進行資源隔離,如PID Namespace隔離進程,Mount Namespace隔離文件系統,Network Namespace隔離網絡等。

        一個Network Namespace提供了一份獨立的網絡環境,包括網卡、路由、Iptables規則等都與其他的Network Namespace隔離。

        一個Docker容器一般會分配一個獨立的Network Namespace。但如果啟動容器的時候使用host模式,那么這個容器將不會獲得一個獨立的Network Namespace,而是和宿主機共用一個Root Network Namespace。容器將不會虛擬出自己的網卡,配置自己的IP等,而是使用宿主機的IP和端口。出于安全考慮不推薦使用這種網絡模式。

        我們在192.168.100.131/24的機器上用Host模式啟動一個含有WEB應用的Docker容器,監聽TCP 80端口。當我們在容器中執行任何類似ifconfig命令查看網絡環境時,看到的都是宿主機上的信息。

        而外界訪問容器中的應用,則直接使用192.168.100.131:80即可,不用任何NAT轉換,就如直接跑在宿主機中一樣。

        但是,容器的其他方面,如文件系統、進程列表等還是和宿主機隔離的。

2、Container模式

        這個模式可以指定新創建的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。

        新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP、端口范圍等。

        同樣,兩個容器除了網絡方面,其他的如文件系統、進程列表等還是隔離的。兩個容器的進程可以通過lo網卡設備通信。

        使用--net=container:container_id/container_name,多個容器使用共同的網絡看到的ip是一樣的。

3、None模式

       在這種模式下,Docker容器擁有自己的Network Namespace,但是并不為Docker容器進行任何網絡配置。

       也就是說,這個Docker容器沒有網卡、IP、路由等信息。需要我們自己為Docker容器添加網卡、配置IP等。

4、Bridge模式(默認模式)

        bridge模式是Docker默認的網絡設置,屬于一種NAT網絡模型,Docker daemon在啟動的時候就會建立一個docker0網橋(通過-b參數可以指定),每個容器使用bridge模式啟動時,Docker都會為容器創建一對虛擬網絡接口(veth pair)設備,這對接口一端在容器的Network Namespace,另一端在docker0,這樣就實現了容器與宿主機之間的通信。

       在bridge模式下,Docker容器與外部網絡通信都是通過iptables規則控制的,這也是Docker網絡性能低下的一個重要原因。

       使用iptables -vnL -t nat可以查看NAT表,在Chain Docker中可以看到容器橋接的規則。

0條評論
0 / 1000
lixx
3文章數
0粉絲數
lixx
3 文章 | 0 粉絲
lixx
3文章數
0粉絲數
lixx
3 文章 | 0 粉絲
原創

Docker網絡模式

2024-10-28 09:27:18
18
0

安裝Docker時會自動創建3個網絡,可以使用docker network ls命令列出這些網絡。

Docker有以下4種網絡模式:

Host模式:使用--net=host指定。

Container模式:使用--net=container:NAME_or_ID指定。

None模式:使用--net=none指定。

Bridge模式:使用--net=bridge指定,默認設置。

1、Host模式

        Docker底層使用了Linux的Namespaces技術來進行資源隔離,如PID Namespace隔離進程,Mount Namespace隔離文件系統,Network Namespace隔離網絡等。

        一個Network Namespace提供了一份獨立的網絡環境,包括網卡、路由、Iptables規則等都與其他的Network Namespace隔離。

        一個Docker容器一般會分配一個獨立的Network Namespace。但如果啟動容器的時候使用host模式,那么這個容器將不會獲得一個獨立的Network Namespace,而是和宿主機共用一個Root Network Namespace。容器將不會虛擬出自己的網卡,配置自己的IP等,而是使用宿主機的IP和端口。出于安全考慮不推薦使用這種網絡模式。

        我們在192.168.100.131/24的機器上用Host模式啟動一個含有WEB應用的Docker容器,監聽TCP 80端口。當我們在容器中執行任何類似ifconfig命令查看網絡環境時,看到的都是宿主機上的信息。

        而外界訪問容器中的應用,則直接使用192.168.100.131:80即可,不用任何NAT轉換,就如直接跑在宿主機中一樣。

        但是,容器的其他方面,如文件系統、進程列表等還是和宿主機隔離的。

2、Container模式

        這個模式可以指定新創建的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。

        新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP、端口范圍等。

        同樣,兩個容器除了網絡方面,其他的如文件系統、進程列表等還是隔離的。兩個容器的進程可以通過lo網卡設備通信。

        使用--net=container:container_id/container_name,多個容器使用共同的網絡看到的ip是一樣的。

3、None模式

       在這種模式下,Docker容器擁有自己的Network Namespace,但是并不為Docker容器進行任何網絡配置。

       也就是說,這個Docker容器沒有網卡、IP、路由等信息。需要我們自己為Docker容器添加網卡、配置IP等。

4、Bridge模式(默認模式)

        bridge模式是Docker默認的網絡設置,屬于一種NAT網絡模型,Docker daemon在啟動的時候就會建立一個docker0網橋(通過-b參數可以指定),每個容器使用bridge模式啟動時,Docker都會為容器創建一對虛擬網絡接口(veth pair)設備,這對接口一端在容器的Network Namespace,另一端在docker0,這樣就實現了容器與宿主機之間的通信。

       在bridge模式下,Docker容器與外部網絡通信都是通過iptables規則控制的,這也是Docker網絡性能低下的一個重要原因。

       使用iptables -vnL -t nat可以查看NAT表,在Chain Docker中可以看到容器橋接的規則。

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0