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

Docker?容器跨主機通信?overlay的詳細步驟

 更新時間:2024年10月14日 11:27:23   作者:蝦丸而已  
Overlay網(wǎng)絡通過VXLAN技術創(chuàng)建虛擬網(wǎng)絡,實現(xiàn)不同主機上容器的邏輯連接,支持跨主機通信,具有擴展性、隔離性和靈活性,適用于大規(guī)模容器化部署

Docker 容器跨主機通信 overlay

一.Overlay網(wǎng)絡概述

? Overlay網(wǎng)絡是指在不改變現(xiàn)有網(wǎng)絡基礎設施的前提下,通過某種約定通信協(xié)議,把二層報文封裝在IP報文之上的新的數(shù)據(jù)格式。Overlay網(wǎng)絡采用VXLAN(Virtual Extensible LAN)技術創(chuàng)建一個虛擬網(wǎng)絡,將不同主機上的容器連接到同一個邏輯網(wǎng)絡中。這樣,容器就可以像在同一臺主機上一樣進行通信,而無需關心底層的網(wǎng)絡細節(jié)。

二.Overlay網(wǎng)絡的優(yōu)勢

? 跨主機通信:Overlay網(wǎng)絡允許在不同主機上的容器之間進行通信,打破了主機之間的隔離。
擴展性:Overlay網(wǎng)絡可以支持大量的容器和主機,滿足大規(guī)模容器化部署的需求。
隔離性:通過Overlay網(wǎng)絡,可以為不同的容器提供獨立的網(wǎng)絡環(huán)境,避免網(wǎng)絡沖突和干擾。
靈活性:Overlay網(wǎng)絡支持動態(tài)添加和刪除容器,無需重新配置網(wǎng)絡。

三、實現(xiàn)Overlay網(wǎng)絡的步驟

1.準備環(huán)境

docker01 192.168.73.128 ens33 centos7
docker02 192.168.73.129 ens33 centos7

2.初始化一個swarm集群

# 初始化swarm集群
[root@docker01 ~]# docker swarm init --advertise-addr 192.168.73.128
Swarm initialized: current node (9fn9iyxhkxvjey06lwhgv7zhb) is now a manager.
To add a worker to this swarm, run the following command:
    docker swarm join --token SWMTKN-1-1rqzq4jhf4wm77e8yn6s347sd189u84mr0u042kwxxv05n8bbx-1rv4ae95p4e4y6aztlhkvqtfx 192.168.73.128:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
# 查看集群
[root@docker01 ~]# docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
9fn9iyxhkxvjey06lwhgv7zhb *   docker01   Ready     Active         Leader           26.1.4
# 查看網(wǎng)絡
[root@docker01 ~]# docker network ls
NETWORK ID     NAME              DRIVER    SCOPE
6ad75bb1b055   bridge            bridge    local
f12f6a0f8bbf   docker_gwbridge   bridge    local
b1c70e3e1ded   host              host      local
116fnum2qea1   ingress           overlay   swarm
e9eddadcf473   none              null      local

3.創(chuàng)建 overlay network

# 創(chuàng)建ovelay,自定義子網(wǎng)和網(wǎng)關,不輸入系統(tǒng)會自動生成
[root@docker01 ~]# docker network create -d overlay --subnet=192.168.100.0/24 --gateway=192.168.100.1 --attachable my-overlay
ue8rewtwd72difwr86gi5wwsl
# -–attachable:允許集群服務間的容器交互連接或者獨立的容器之間能夠連接。swarm在設計之初是為了service(一組container)而服務的,因此通過swarm創(chuàng)建的overlay網(wǎng)絡在一開始并不支持單獨的container加入其中。但是在docker1.13, 我們可以通過“–attach” 參數(shù)聲明當前創(chuàng)建的overlay網(wǎng)絡可以被container直接加入。
[root@docker01 ~]# docker network inspect my-overlay
[
    {
        "Name": "my-overlay",
        "Id": "ue8rewtwd72difwr86gi5wwsl",
        "Created": "2024-10-12T06:04:04.784641012Z",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "192.168.100.0/24", # 自定義子網(wǎng)
                    "Gateway": "192.168.100.1"	  # 自定義網(wǎng)關
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": null,
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4098"
        },
        "Labels": null
    }
]

4.將docker02加入集群

# 獲取加入集群命令
[root@docker01 ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:
    docker swarm join --token SWMTKN-1-1rqzq4jhf4wm77e8yn6s347sd189u84mr0u042kwxxv05n8bbx-1rv4ae95p4e4y6aztlhkvqtfx 192.168.73.128:2377
# 在docker02上執(zhí)行
[root@docker02 ~]# docker swarm join --token SWMTKN-1-1rqzq4jhf4wm77e8yn6s347sd189u84mr0u042kwxxv05n8bbx-1rv4ae95p4e4y6aztlhkvqtfx 192.168.73.128:2377
This node joined a swarm as a worker.
# docker01 上查詢是否加入成功
[root@docker01 ~]# docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
9fn9iyxhkxvjey06lwhgv7zhb *   docker01   Ready     Active         Leader           26.1.4
4m1xin9edttdt1ljxtzy3q2ab     docker02   Ready     Active                          26.1.4

5.docker01創(chuàng)建容器

[root@docker01 ~]# docker run -d --name=busybox1 --network=my-overlay harbor.linux.com/k8s/busybox:latest /bin/sleep 3600
d8b2749823f570d6c08eccf2df369774323a72628e18e09bc9dfb09735bd00f0
# 查詢?nèi)萜鱥p
[root@docker01 ~]# docker exec -it busybox1 /bin/sh
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
14: eth0@if15: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue 
    link/ether 02:42:c0:a8:64:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.2/24 brd 192.168.100.255 scope global eth0
       valid_lft forever preferred_lft forever
16: eth1@if17: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 02:42:ac:12:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.3/16 brd 172.18.255.255 scope global eth1
       valid_lft forever preferred_lft forever
# 查看網(wǎng)絡,可以發(fā)現(xiàn)有了容器的IP及LB IP
[root@docker01 ~]# docker network inspect my-overlay
[
    {
        "Name": "my-overlay",
        "Id": "ue8rewtwd72difwr86gi5wwsl",
        "Created": "2024-10-12T14:15:21.812458427+08:00",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "192.168.100.0/24",
                    "Gateway": "192.168.100.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "d8b2749823f570d6c08eccf2df369774323a72628e18e09bc9dfb09735bd00f0": {
                "Name": "busybox1",
                "EndpointID": "225db615a5d654cd813171ed4d07c7f485b362551507dd18125a4405c45b18fb",
                "MacAddress": "02:42:c0:a8:64:02",
                "IPv4Address": "192.168.100.2/24",
                "IPv6Address": ""
            },
            "lb-my-overlay": {
                "Name": "my-overlay-endpoint",
                "EndpointID": "cce907ae37301e39dbd55abcba03e50e562f589f7d08e6c57ace8891d4785747",
                "MacAddress": "02:42:c0:a8:64:03",
                "IPv4Address": "192.168.100.3/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4098"
        },
        "Labels": {},
        "Peers": [
            {
                "Name": "9fc55aae1502",
                "IP": "192.168.73.128"
            }
        ]
    }
]

6.docker02創(chuàng)建容器

[root@docker02 ~]# docker run -d --name=busybox2 --network=my-overlay harbor.linux.com/k8s/busybox:latest /bin/sleep 3600
3dd7b088c68f0247d312070bc63e15a697d5e8aa198f7bf53450ea96843cc41b
# 查詢?nèi)萜鱥p
[root@docker02 ~]# docker exec -it busybox2 /bin/sh
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
13: eth0@if14: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue 
    link/ether 02:42:c0:a8:64:04 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.4/24 brd 192.168.100.255 scope global eth0
       valid_lft forever preferred_lft forever
15: eth1@if16: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 02:42:ac:12:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.3/16 brd 172.18.255.255 scope global eth1
       valid_lft forever preferred_lft forever
# 查看網(wǎng)絡,可以發(fā)現(xiàn)有了容器的IP及LB IP
[root@docker02 ~]# docker network inspect my-overlay
[
    {
        "Name": "my-overlay",
        "Id": "ue8rewtwd72difwr86gi5wwsl",
        "Created": "2024-10-12T14:21:11.23116209+08:00",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "192.168.100.0/24",
                    "Gateway": "192.168.100.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "3dd7b088c68f0247d312070bc63e15a697d5e8aa198f7bf53450ea96843cc41b": {
                "Name": "busybox2",
                "EndpointID": "e0b40de6b74e610d1e13318f8420fcaa5b7e8b9bcd9c68f6faaa9931ea72f992",
                "MacAddress": "02:42:c0:a8:64:04",
                "IPv4Address": "192.168.100.4/24",
                "IPv6Address": ""
            },
            "lb-my-overlay": {
                "Name": "my-overlay-endpoint",
                "EndpointID": "4fe0523b017be80ce24bddd8b034633f998e36630b100d3a0468ce02ba4e533d",
                "MacAddress": "02:42:c0:a8:64:05",
                "IPv4Address": "192.168.100.5/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4098"
        },
        "Labels": {},
        "Peers": [
            {
                "Name": "9fc55aae1502",
                "IP": "192.168.73.128"
            },
            {
                "Name": "473174a88eb9",
                "IP": "192.168.73.129"
            }
        ]
    }
]       

7.在容器內(nèi)部互相ping對方

# docker01 ping內(nèi)外網(wǎng)測試
[root@docker01 ~]# docker exec -it busybox1 /bin/sh
/ # ping 192.168.100.4
PING 192.168.100.4 (192.168.100.4): 56 data bytes
64 bytes from 192.168.100.4: seq=0 ttl=64 time=1.033 ms
64 bytes from 192.168.100.4: seq=1 ttl=64 time=1.702 ms
64 bytes from 192.168.100.4: seq=2 ttl=64 time=2.209 ms
^C
--- 192.168.100.4 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.033/1.648/2.209 ms
/ # ping 192.168.100.5
PING 192.168.100.5 (192.168.100.5): 56 data bytes
64 bytes from 192.168.100.5: seq=0 ttl=64 time=0.897 ms
64 bytes from 192.168.100.5: seq=1 ttl=64 time=1.988 ms
64 bytes from 192.168.100.5: seq=2 ttl=64 time=0.893 ms
^C
--- 192.168.100.5 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.893/1.259/1.988 ms
/ # ping www.baidu.com
PING www.baidu.com (182.61.200.7): 56 data bytes
64 bytes from 182.61.200.7: seq=0 ttl=127 time=21.864 ms
64 bytes from 182.61.200.7: seq=1 ttl=127 time=23.486 ms
64 bytes from 182.61.200.7: seq=2 ttl=127 time=23.225 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 21.864/22.858/23.486 ms
# docker02 ping內(nèi)外網(wǎng)測試
[root@docker02 ~]# docker exec -it busybox2 /bin/sh
/ # ping 192.168.100.2
PING 192.168.100.2 (192.168.100.2): 56 data bytes
64 bytes from 192.168.100.2: seq=0 ttl=64 time=1.001 ms
64 bytes from 192.168.100.2: seq=1 ttl=64 time=1.374 ms
64 bytes from 192.168.100.2: seq=2 ttl=64 time=1.990 ms
^C
--- 192.168.100.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.001/1.455/1.990 ms
/ # ping 192.168.100.3
PING 192.168.100.3 (192.168.100.3): 56 data bytes
64 bytes from 192.168.100.3: seq=0 ttl=64 time=0.572 ms
64 bytes from 192.168.100.3: seq=1 ttl=64 time=0.999 ms
64 bytes from 192.168.100.3: seq=2 ttl=64 time=1.199 ms
^C
--- 192.168.100.3 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.572/0.923/1.199 ms
/ # ping www.baidu.com
PING www.baidu.com (182.61.200.6): 56 data bytes
64 bytes from 182.61.200.6: seq=0 ttl=127 time=22.134 ms
64 bytes from 182.61.200.6: seq=1 ttl=127 time=22.375 ms
64 bytes from 182.61.200.6: seq=2 ttl=127 time=22.372 ms
^C
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 22.134/22.293/22.375 ms
# Overlay網(wǎng)絡ping通內(nèi)外網(wǎng)的原理
# 內(nèi)部網(wǎng)絡通信:
	1.在Overlay網(wǎng)絡中,虛擬機之間的通信通過虛擬隧道進行。每個虛擬機都有一個唯一的IP地址,這個地址在Overlay網(wǎng)絡中有效。
	2.當一個虛擬機需要向另一個虛擬機發(fā)送數(shù)據(jù)時,數(shù)據(jù)會被封裝在Overlay報文中,并通過虛擬隧道傳輸?shù)侥繕颂摂M機。
	3.由于Overlay網(wǎng)絡是在物理網(wǎng)絡之上構建的,因此虛擬機之間的通信不會受到物理網(wǎng)絡細節(jié)的影響。
# 外部網(wǎng)絡通信:
	1.Overlay網(wǎng)絡通常與物理網(wǎng)絡相連,以便虛擬機能夠訪問外部網(wǎng)絡。
	2.在這種情況下,虛擬機發(fā)出的數(shù)據(jù)會被封裝在Overlay報文中,并通過物理網(wǎng)絡的網(wǎng)關或路由器發(fā)送到外部網(wǎng)絡。
	3.外部網(wǎng)絡收到的數(shù)據(jù)會被解封裝,并根據(jù)目標IP地址進行路由和轉發(fā)。

VXLAN(Virtual eXtensible Local Area Network)是一種網(wǎng)絡虛擬化技術,它使用隧道協(xié)議將二層以太網(wǎng)幀封裝在三層IP報文中,從而實現(xiàn)跨物理網(wǎng)絡的二層連接。這里的vxlan:vethXXX表示通過VXLAN隧道連接的虛擬以太網(wǎng)接口,它可能用于將容器的流量封裝并通過宿主機發(fā)送到外部網(wǎng)絡或其他容器。vxlan才是實體,overlay只是網(wǎng)絡模型;一句話就是vxlan是overlay網(wǎng)絡的一種實現(xiàn)。

到此這篇關于Docker 容器跨主機通信 overlay的文章就介紹到這了,更多相關Docker 容器跨主機通信內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • ubuntu 14.04 64位安裝配置docker教程

    ubuntu 14.04 64位安裝配置docker教程

    這篇文章主要為大家詳細介紹了ubuntu 14.04 64位安裝配置docker教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Docker鏡像的commit操作示例及作用

    Docker鏡像的commit操作示例及作用

    這篇文章主要為大家介紹了Docker鏡像的commit操作示例及作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 淺談docker的上下文和工作目錄

    淺談docker的上下文和工作目錄

    在編寫Dockerfile時我們總會接觸到COPY上下文和工作目錄,有時候這些位置搞不清楚,本文就來介紹一下docker的上下文和工作目錄,感興趣的可以了解一下
    2025-09-09
  • 使用Docker自動化部署項目的全過程

    使用Docker自動化部署項目的全過程

    文章介紹了兩個項目的Docker部署方案:一是通過Dockerfile構建Boost搜索引擎鏡像并配置依賴庫,二是使用docker-compose編排Web應用、MySQL、Redis及編譯器服務,實現(xiàn)多容器協(xié)同部署與環(huán)境隔離
    2025-07-07
  • 多個docker compose啟動的容器之間通信實現(xiàn)過程

    多個docker compose啟動的容器之間通信實現(xiàn)過程

    文章討論了Docker Compose中多組容器編排的問題,指出默認情況下各組容器網(wǎng)絡會隔離,為了解決跨組訪問的問題,文章建議創(chuàng)建一個公共網(wǎng)絡,并將各組容器組的默認網(wǎng)絡配置改為該公共網(wǎng)絡,同時啟用外部連接,這樣可以實現(xiàn)跨組訪問,解決網(wǎng)絡隔離的限制
    2025-09-09
  • 安裝Docker Desktop報錯WSL 2 installation is incomplete的問題(解決報錯)

    安裝Docker Desktop報錯WSL 2 installation is incomplete的問題(解決報錯)

    這篇文章主要介紹了安裝Docker Desktop報錯WSL 2 installation is incomplete的問題,解決方法很簡單只需我們自己手動更新一下,我們根據(jù)提示去微軟官網(wǎng)下載最新版的wsl2安裝后即可正常打開,需要的朋友可以參考下
    2021-06-06
  • Docker啟動失敗報錯Failed?to?start?Docker?Application?Container?Engine的解決辦法

    Docker啟動失敗報錯Failed?to?start?Docker?Application?Containe

    最近在啟動Docker的時候發(fā)現(xiàn)了個錯誤,所以下面這篇文章主要給大家介紹了關于Docker啟動失敗報錯Failed?to?start?Docker?Application?Container?Engine的解決辦法,需要的朋友可以參考下
    2022-08-08
  • 對docker中的overlay式網(wǎng)絡詳解

    對docker中的overlay式網(wǎng)絡詳解

    這篇文章主要介紹了對docker中的overlay式網(wǎng)絡詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • docker設置redis密碼實現(xiàn)方式

    docker設置redis密碼實現(xiàn)方式

    這篇文章主要介紹了docker設置redis密碼實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2026-06-06
  • Docker下安裝ES和kibana詳細步驟

    Docker下安裝ES和kibana詳細步驟

    這篇文章給大家介紹Docker下安裝ES和kibana詳細步驟,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-12-12

最新評論

万源市| 曲靖市| 本溪市| 二手房| 承德县| 清新县| 五峰| 石棉县| 封开县| 二手房| 平昌县| 五常市| 金乡县| 菏泽市| 襄汾县| 舒兰市| 西乌珠穆沁旗| 土默特右旗| 麦盖提县| 化隆| 六枝特区| 曲沃县| 都安| 忻州市| 苍南县| 年辖:市辖区| 越西县| 鄂伦春自治旗| 永宁县| 仙游县| 新昌县| 同仁县| 定兴县| 通海县| 安阳县| 慈利县| 漾濞| 长武县| 普宁市| 多伦县| 上饶市|