最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker四種網絡模式演示及連通性測試

 更新時間:2022年04月13日 13:54:15   作者:Tiamon_  
這篇文章主要為大家介紹了Docker四種網絡模式演示及連通性測試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪

Docker 的四種網絡模式

網絡模式網絡配置說明
host(開放式網絡模式)–network host容器和宿主機共享 Network namespace
container(聯合掛載式網絡模式)–network container多個容器共享一個 Network namespace
none(封閉式網絡模式)–network none將容器放置在它自己的網絡棧中,但是并不進行任何配置,該模式關閉了容器的網絡功能
bridge(橋接式網絡模式)–network bridgeDocker默認的網絡設置,此模式會為每一個容器分配Network Namespace、設置IP等

docker network 查看 docker 網絡模式

[root@docker ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
15791bf83278        bridge              bridge              local
df75b40e39f6        host                host                local
f89ee64125bc        none                null                local

docker run --network 命令可以指定使用的網絡模式

host 模式

在這里插入圖片描述

如果啟動容器的時候使用host模式,那么這個容器將不會獲得一個獨立的Network Namespace,而是和宿主機共用一個Network Namespace 。容器將不會虛擬出自己的網卡,配置自己的IP等,而是使用宿主機的IP和端口 。但是, 容器的其他方面,如文件系統(tǒng)、進程列表等還是和宿主機隔離的 。

使用host模式的容器可以直接使用宿主機的IP地址與外界通信,容器內部的服務端口也可以使用宿主機的端口,不需要進行NAT,host最大的優(yōu)勢就是網絡性能比較好,但是docker host上已經使用的端口就不能再用了,網絡的隔離性不好。

host 模式演示

以 host 網路模式運行容器centos

[root@docker ~]# docker run -itd --name centos --network host centos:latest

查看該容器的網絡模式

[root@docker ~]# docker inspect 40c4e28bd29c | grep -i network
            "NetworkMode": "host",
        "NetworkSettings": {
            "Networks": {
                    "NetworkID": "df75b40e39f671cbc4d287fefce8b7b64819fcad453cfe7f34831f6490480760",

查看容器 IP

[root@docker ~]# docker exec -it $(docker ps -q) hostname -I 
192.168.117.130 172.17.0.1 

container 模式

在這里插入圖片描述

這個模式指定 新創(chuàng)建的容器和已經存在的一個容器共享一個 Network Namespace ,而不是和宿主機共享。 新創(chuàng)建的容器不會創(chuàng)建自己的網卡,配置自己的 IP,而是和一個指定的容器共享 IP、端口范圍 等。同樣, 兩個容器除了網絡方面,其他的如文件系統(tǒng)、進程列表等還是隔離的 。兩個容器的進程可以通過 lo 網卡設備通信。

container 模式演示

使用 bridge 網絡模式啟動一個 centos_1 容器

	[root@docker ~]# docker run -itd --name centos_1 --network bridge centos:latest
	10ec9d1e3a6b7530cff797cdfc2c44702b62f9f29dcee679306a0262d1e41226
#查看該容器的網絡模式
	[root@docker ~]# docker inspect 10ec9d1e3a6b | grep -i network
            "NetworkMode": "bridge",
        "NetworkSettings": {
            "Networks": {
                    "NetworkID": "ae7c4bfdd3910f8a00cb962afd06cf296d7d04a99611a6ab154d496ca777183b",
#查看容器IP
	[root@docker ~]# docker exec -it 10ec9d1e3a6b hostname -I
	172.17.0.2 

使用 container 網絡模式啟動一個 centos_2 容器

	[root@docker ~]# docker run -itd --name centos_2 --network container:centos_1 centos:latest
	1f7d976b3f80dd064fd87902dacefc72b617acc6f7917a2f0adb434cb5ff0d11
#查看該容器的網絡模式
	[root@docker ~]# docker inspect 1f7d976b3f80 | grep -i network
            "NetworkMode": "container:centos_1",
        "NetworkSettings": {
            "Networks": {}
#查看容器IP
	[root@docker ~]# docker exec -it 1f7d976b3f80 hostname -I
	172.17.0.2 

測試 centos_2 與宿主機的連通性

#通信正常
	[root@docker ~]# docker exec -it 1f7d976b3f80 ping 192.168.117.130
	PING 192.168.117.130 (192.168.117.130) 56(84) bytes of data.
	64 bytes from 192.168.117.130: icmp_seq=1 ttl=64 time=0.135 ms
	64 bytes from 192.168.117.130: icmp_seq=2 ttl=64 time=0.046 ms
	64 bytes from 192.168.117.130: icmp_seq=3 ttl=64 time=0.057 ms

測試 centos_2 與外網的連通性

#通信正常
	[root@docker ~]# docker exec -it 1f7d976b3f80 ping www.baidu.com
	PING www.a.shifen.com (61.135.185.32) 56(84) bytes of data.
	64 bytes from 61.135.185.32 (61.135.185.32): icmp_seq=1 ttl=127 time=4.45 ms
	64 bytes from 61.135.185.32 (61.135.185.32): icmp_seq=2 ttl=127 time=4.27 ms

none 模式

在這里插入圖片描述

使用none模式,Docker容器擁有自己的Network Namespace,但是, 并不為Docker容器進行任何網絡配置 。也就是說,這個Docker容器沒有網卡、IP、路由等信息,只有l(wèi)o 網絡接口。需要我們自己為Docker容器添加網卡、配置IP等。

不參與網絡通信,運行于此類容器中的進程僅能訪問本地回環(huán)接口;僅適用于進程無須網絡通信的場景中,例如:備份進程診斷及各種離線任務等。

 none 模式演示

使用 none 網絡模式啟動一個 centos_1 容器

[root@docker ~]# docker run -itd --name centos_1 --network none  centos:latest
b70dddea0a3a554c0c658442fcce8950a272148192b9622a1c5e6baa92be705c
#查看該容器的網絡模式
	[root@docker ~]# docker inspect b70dddea0a3a | grep -i network
	            "NetworkMode": "none",
	        "NetworkSettings": {
	            "Networks": {
	                    "NetworkID": "f89ee64125bc9606a0e30f5d6c52d21bbdd10b14cd32191c783967a41675497c",
#查看容器IP
	[root@docker ~]# docker exec -it b70dddea0a3a hostname -I
	#IP為空

測試 centos_1 與宿主機的連通性

#無法通信
	[root@docker ~]# docker exec -it b70dddea0a3a ping 192.168.117.130
	connect: Network is unreachable

bridge 模式

在這里插入圖片描述

當Docker進程啟動時,會 在主機上創(chuàng)建一個名為docker0的虛擬網橋 ,此主機上啟動的 Docker容器會連接到這個虛擬網橋上, 所以有默認地址172.17.0.1/16的地址。虛擬網橋的工作方式和物理交換機類似,這樣主機上的所有容器就通過交換機連在了一個二層網絡中。

從 docker0子網中分配一個IP給容器使用 ,并設置 docker0的IP地址為容器的默認網關 。在主機上 創(chuàng)建一對虛擬網卡 veth pair設備,Docker將veth pair設備的 一端放在新創(chuàng)建的容器 中,并命名為eth0(容器的網卡), 另一端放在主機中 ,以vethxxx這樣類似的名字命名,并將這個網絡設備加入到docker0網橋中??梢酝ㄟ^brctl show命令查看。

#如果您的主機沒有 brctl 命令,請安裝網橋管理工具包
	[root@docker ~]# yum install -y bridge-utils 
#查看網橋
	[root@docker ~]# brctl show
	bridge name	bridge id		STP enabled	interfaces
	docker0		8000.02426f470008	no	

bridge模式是docker的默認網絡模式,不寫–net參數,就是bridge模式。使用docker run -p時,docker實際是在iptables做了DNAT規(guī)則,實現端口轉發(fā)功能??梢允褂胕ptables -t nat -vnL查看。

 bridge 模式演示

創(chuàng)建一個網橋 centos-net

	[root@docker ~]# docker network create -d bridge centos-net
	1d8d918c3488b0e5b3f15ecd5c35c1dc36a87c66dc39fa38fbefcdc6ef471218
#查看創(chuàng)建的網橋
	[root@docker ~]# brctl show
	bridge name	bridge id		STP enabled	interfaces
	#新創(chuàng)建的網橋
	br-1d8d918c3488		8000.024297951600	no	
	#系統(tǒng)默認的網橋	
	docker0		8000.02426f470008	no	
	[root@docker ~]# ip a
	8: br-1d8d918c3488: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:97:95:16:00 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 scope global br-1d8d918c3488
       valid_lft forever preferred_lft forever

使用 bridge 網絡模式啟動一個 centos_1 容器

	[root@docker ~]# docker run -itd --name centos_1 --network centos-net centos:latest
	f5bdd3510cc84a6fdeef10f062589770daa663aa31855131cab3fa0627e98d3d
#查看該容器的網絡模式
	[root@docker ~]# docker inspect f5bdd3510cc8 | grep -i network
	            "NetworkMode": "centos-net",
	        "NetworkSettings": {
	            "Networks": {
	                    "NetworkID": "1d8d918c3488b0e5b3f15ecd5c35c1dc36a87c66dc39fa38fbefcdc6ef471218",
#查看容器IP
	[root@docker ~]# docker exec -it f5bdd3510cc8 hostname -I
	172.18.0.2 

使用 bridge 網絡模式啟動一個 centos_2 容器

	[root@docker ~]# docker run -itd --name centos_2 --network centos-net centos:latest
#查看該容器的網絡模式
	[root@docker ~]# docker inspect $(docker ps -n 1 -q ) | grep -i network
            "NetworkMode": "centos-net",
        "NetworkSettings": {
            "Networks": {
                    "NetworkID": "1d8d918c3488b0e5b3f15ecd5c35c1dc36a87c66dc39fa38fbefcdc6ef471218",
#查看容器IP
	[root@docker ~]# docker exec -it $(docker ps -n 1 -q ) hostname -I
	172.18.0.3 

查看網橋連接狀況

[root@docker ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br-1d8d918c3488		8000.024297951600	no		veth44c8534
							vethef015ff
docker0		8000.02426f470008	no	

測試容器之間的連通性

[root@docker ~]# docker exec -it f5bdd3510cc8 ping 172.18.0.3 
PING 172.18.0.3 (172.18.0.3) 56(84) bytes of data.
64 bytes from 172.18.0.3: icmp_seq=1 ttl=64 time=0.104 ms
64 bytes from 172.18.0.3: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from 172.18.0.3: icmp_seq=3 ttl=64 time=0.045 ms

測試容器與宿主機間的連通性

#容器 centos_1 與宿主機間的連通性
	[root@docker ~]# docker exec -it f5bdd3510cc8 ping 192.168.117.130
	PING 192.168.117.130 (192.168.117.130) 56(84) bytes of data.
	64 bytes from 192.168.117.130: icmp_seq=1 ttl=64 time=0.102 ms
	64 bytes from 192.168.117.130: icmp_seq=2 ttl=64 time=0.042 ms
#容器 centos_2 與宿主機間的連通性
	[root@docker ~]# docker exec -it 78854ab16473  ping 192.168.117.130
	PING 192.168.117.130 (192.168.117.130) 56(84) bytes of data.
	64 bytes from 192.168.117.130: icmp_seq=1 ttl=64 time=0.103 ms
	64 bytes from 192.168.117.130: icmp_seq=2 ttl=64 time=0.043 ms

以上就是Docker四種網絡模式演示及連通性測試的詳細內容,更多關于Docker網絡模式連通性測試的資料請關注腳本之家其它相關文章!

相關文章

  • docker搭建rabbitmq實現步驟

    docker搭建rabbitmq實現步驟

    這篇文章主要為大家介紹了docker搭建rabbitmq實現步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Dockerfile的CMD指令用法

    Dockerfile的CMD指令用法

    這篇文章主要介紹了Dockerfile的CMD指令用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 基于docker安裝tensorflow的完整步驟

    基于docker安裝tensorflow的完整步驟

    TensorFlow 隨著AlphaGo的勝利也火了起來。 下面這篇文章主要給大家介紹了關于基于docker安裝tensorflow的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • MySQL docker容器數據更新統(tǒng)計shell腳本代碼方式

    MySQL docker容器數據更新統(tǒng)計shell腳本代碼方式

    本文介紹了如何創(chuàng)建和配置一個腳本文件,使其能夠每隔一小時執(zhí)行一次,用于更新MySQL統(tǒng)計信息,腳本使用Docker來執(zhí)行MySQL命令,并將結果保存到文件中,文章還強調了權限設置和配置定時任務的步驟
    2025-01-01
  • 詳解如何將docker快速升級到最新版本

    詳解如何將docker快速升級到最新版本

    最近在對區(qū)塊鏈瀏覽器調優(yōu),該區(qū)塊鏈瀏覽器就是使用docker部署的微服務,在一臺新的服務器上啟動時報錯,發(fā)現是docker版本過低,所以本文給大家介紹了將docker快速升級到最新版本的方法,需要的朋友可以參考下
    2024-02-02
  • Ubuntu Docker 安裝教程

    Ubuntu Docker 安裝教程

    這篇文章主要為大家詳細介紹了Ubuntu Docker 安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • docker cp 拷貝文件 和 進入容器的操作

    docker cp 拷貝文件 和 進入容器的操作

    這篇文章主要介紹了docker cp 拷貝文件 和 進入容器的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Ubuntu Docker 源碼編譯(1.9.1 )詳解

    Ubuntu Docker 源碼編譯(1.9.1 )詳解

    這篇文章主要介紹了Ubuntu Docker 源碼編譯(1.9.1 )詳解的相關資料,這里對編譯過程進行了詳細的分析介紹,需要的朋友可以參考下
    2016-11-11
  • Docker阿里云RocketMQ 4.5.1部署流程詳解

    Docker阿里云RocketMQ 4.5.1部署流程詳解

    RocketMQ是阿里開源的一款分布式消息中間件,具有日志監(jiān)控、消息推送、金融報文、電信信令、削峰填谷等功能.接下來通過本文給大家介紹Docker阿里云RocketMQ 4.5.1部署流程,感興趣的朋友一起看看吧
    2021-05-05
  • 如何設置docker容器時區(qū)

    如何設置docker容器時區(qū)

    這篇文章主要介紹了如何設置docker容器時區(qū)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

宣汉县| 儋州市| 松江区| 潜江市| 泾源县| 湛江市| 汉源县| 汤原县| 南开区| 四会市| 长治市| 正阳县| 黔东| 营山县| 南陵县| 洪泽县| 巴塘县| 牙克石市| 巨鹿县| 枣庄市| 玉门市| 绥中县| 海丰县| 永善县| 平利县| 花莲市| 东城区| 卫辉市| 宜黄县| 泸西县| 太康县| 渑池县| 兴宁市| 衡阳县| 陆川县| 黄梅县| 光泽县| 铜陵市| 东乌| 宾阳县| 莱芜市|