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

Docker實(shí)現(xiàn)與主機(jī)同網(wǎng)段其他設(shè)備互通過(guò)程

 更新時(shí)間:2025年12月19日 15:36:49   作者:微技術(shù)  
本文介紹了如何使用Docker網(wǎng)絡(luò)功能,包括默認(rèn)網(wǎng)絡(luò)、自定義網(wǎng)絡(luò)和Overlay網(wǎng)絡(luò),并通過(guò)實(shí)踐操作展示了如何在多臺(tái)機(jī)器上創(chuàng)建和驗(yàn)證Overlay網(wǎng)絡(luò)

Docker與主機(jī)同網(wǎng)段其他設(shè)備互通

對(duì)開(kāi)發(fā)者而言,隨著容器的普遍使用,開(kāi)發(fā)者可以很方便的搭建項(xiàng)目的簡(jiǎn)易測(cè)試環(huán)境。

有時(shí)候?yàn)榱隧?xiàng)目可以在任意機(jī)器一鍵運(yùn)行,不用配置連接IP等信息。所以希望可以提前固定容器的IP地址,而且一個(gè)項(xiàng)目有時(shí)候涉及多個(gè)容器,可能還會(huì)部署在多臺(tái)機(jī)器上。所以如果容器間可以固定IP跨機(jī)器通信的話(huà),會(huì)有很大方便。

1、docker網(wǎng)絡(luò)

docker容器默認(rèn)是一個(gè)有自己獨(dú)立網(wǎng)絡(luò)空間的虛擬系統(tǒng)。

docker安裝后自動(dòng)創(chuàng)建3中網(wǎng)絡(luò):bridge、host、none。

  • bridge:網(wǎng)橋模式,默認(rèn)創(chuàng)建docker0網(wǎng)橋,172.17.0.0/16,宿主機(jī)可訪問(wèn),外部機(jī)器不可見(jiàn)。
  • host:共享宿主機(jī)網(wǎng)絡(luò)模式,外部主機(jī)與容器直接通信,容器缺少了隔離性。
  • none:禁用網(wǎng)絡(luò)模式。

docker自定義網(wǎng)絡(luò)

docker提供了三種自定義網(wǎng)絡(luò)驅(qū)動(dòng):bridge、overlay、macvlan。

  • bridge驅(qū)動(dòng)類(lèi)似默認(rèn)的bridge網(wǎng)絡(luò)模式。
  • overlay和macvlan是用于創(chuàng)建跨主機(jī)網(wǎng)絡(luò)。

支持自定義網(wǎng)段、網(wǎng)關(guān),docker network create --subnet 172.77.0.0/24 --gateway 172.77.0.1 my_net。

docker創(chuàng)建容器使用默認(rèn)docker0網(wǎng)絡(luò)不支持自定義固定IP,都是動(dòng)態(tài)的。

2、自定義網(wǎng)絡(luò)使用

自定義創(chuàng)建網(wǎng)段。docker network create --subnet=172.18.0.0/16 spark-net。

指定網(wǎng)絡(luò)驅(qū)動(dòng)docker network create -d overlay --subnet 10.22.1.0/24 --gateway 10.22.1.1 spark-net-0。

創(chuàng)建容器固定IP。

docker run --name cloud1 \
--net spark-net --ip 172.18.0.2 \
-h cloud1 \
-it ubuntu
docker run --name cloud1_0 \
--network spark-net-0 --ip 10.22.1.26 \
-h cloud1 \
-it ubuntu

實(shí)踐操作

1、Overlay網(wǎng)絡(luò)模式詳解

Overlay網(wǎng)絡(luò)是目前比較主流的跨節(jié)點(diǎn)容器間數(shù)據(jù)傳輸和路由方案。

Overlay網(wǎng)絡(luò)模式在主機(jī)網(wǎng)絡(luò)之上,在多個(gè)Docker主機(jī)之間實(shí)現(xiàn)分布式網(wǎng)絡(luò),允許跨容器之間的交互。

Overlay網(wǎng)絡(luò)指在不改變現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施的前提下,通過(guò)某種約定通信協(xié)議,把二層報(bào)文封裝在IP報(bào)文之上的新的數(shù)據(jù)格式。

2、Consul服務(wù)發(fā)現(xiàn)

Consul是一個(gè)分布式、高可用性和多數(shù)據(jù)中心感知工具,用于服務(wù)發(fā)現(xiàn)、配置和編排。Consul 支持大規(guī)??焖俨渴?、配置和維護(hù)面向服務(wù)的架構(gòu)。

部署單節(jié)點(diǎn)的consul服務(wù)(可選擇公網(wǎng)服務(wù)器,或者能與其他部署容器通信的主機(jī))。

# 拉取鏡像
docker pull progrium/consul
# 運(yùn)行consul容器
docker run -d -p 8500:8500 -h consul --name consul --restart=always progrium/consul -server -bootstrap
# -h:表示consul的主機(jī)名
# --name consul:表示為該容器名
# --restart=always表示可以隨著docker服務(wù)的啟動(dòng)而啟動(dòng);
# 運(yùn)行consul容器,該服務(wù)的默認(rèn)端口是8500;-p:表示將容器的8500端口映射到宿主機(jī)的8500端口
# -serve -bootstarp:表示當(dāng)在群集中,加上這兩個(gè)選項(xiàng)可以使其以master的身份出現(xiàn)

管理訪問(wèn)地址

http://IP:8500/ui/#/dc1/kv/docker/nodes/

3、修改docker配置

# 所有需要通信的機(jī)器都需要修改
 vim /etc/docker/daemon.json
 # 增加 cluster-store、cluster-advertise兩個(gè)參數(shù)
 {
  "registry-mirrors": ["https://xxxx.xxxx.aliyuncs.com","https://registry.docker-cn.com"],
  "cluster-store": "consul://IP:8500",
  "cluster-advertise": "ens33:2376"
 }
 # cluster-store,是配置sonsul集群的訪問(wèn)地址
 # cluster-advertise,是廣播通信地址和端口
 # 重啟docker
 systemctl daemon-reload
 systemctl restart docker
 #如果有端口拒絕訪問(wèn)問(wèn)題,可直接關(guān)掉防火墻
 #停止firewall
 systemctl stop firewalld.service
 #禁止firewall開(kāi)機(jī)啟動(dòng)
 systemctl disable firewalld.service
 #查看開(kāi)放端口列表
 firewall-cmd --list-ports

4、實(shí)踐機(jī)器規(guī)劃

本文實(shí)踐創(chuàng)建了3臺(tái)虛機(jī):

192.168.17.150 192.168.17.151 192.168.17.152

5、創(chuàng)建overlay網(wǎng)絡(luò)

選其中一臺(tái)機(jī)器執(zhí)行,例如在192.168.17.150執(zhí)行

# 創(chuàng)建overlay網(wǎng)絡(luò),并自定義制定網(wǎng)段以及網(wǎng)關(guān)
# 可以通過(guò)制定不同的網(wǎng)段,以隔離不同的服務(wù)
docker network create -d overlay --subnet 10.22.1.0/24  --gateway 10.22.1.1 spark-net
# 每臺(tái)機(jī)器查看創(chuàng)建的網(wǎng)絡(luò)
docker network ls
# 查看具體信息
docker network inspect spark-net

刪除網(wǎng)絡(luò)命令

# 刪除自定義網(wǎng)絡(luò)
docker network rm spark-net
# 如果有已連接的,先斷開(kāi)連接
docker network disconnect -f net-spark con1

注意:

例如:在cloud1機(jī)器上,可以執(zhí)行docker network disconnect -f spark-net cloud2但是執(zhí)行docker network disconnect -f spark-net cloud1就無(wú)效,必須跨機(jī)器執(zhí)行斷連。

6. 跨主機(jī)創(chuàng)建容器驗(yàn)證

192.168.17.150機(jī)器上執(zhí)行。

docker run --name cloud1 \
 -p 50070:50070 \
 -p 8088:8088 \
 -p 8080:8080 \
 -p 7077:7077 \
 -p 9000:9000 \
 -p 16010:16010 \
 --network net-spark --ip 10.22.1.26 \
 -h cloud1 \
 --add-host cloud1:10.22.1.26 \
 --add-host cloud2:10.22.1.27 \
 --add-host cloud3:10.22.1.28 \
 -it spark:v4

192.168.17.151機(jī)器上執(zhí)行。

docker run --name cloud2  \
 --network net-spark --ip 10.22.1.27 \
 -h cloud2 \
 --add-host cloud1:10.22.1.26 \
 --add-host cloud2:10.22.1.27 \
 --add-host cloud3:10.22.1.28 \
 -it spark:v4

192.168.17.152機(jī)器上執(zhí)行。

docker run --name cloud3 \
 --network net-spark --ip 10.22.1.28 \
 -h cloud3 \
 --add-host cloud1:10.22.1.26 \
 --add-host cloud2:10.22.1.27 \
 --add-host cloud3:10.22.1.28 \
 -it spark:v4

可分別在三個(gè)容器內(nèi)互相ping IP10.22.1.26、10.22.1.27、10.22.1.28驗(yàn)證。

常見(jiàn)問(wèn)題

1、如遇錯(cuò)誤常用命令

如果網(wǎng)絡(luò)改動(dòng),需要重啟docker

systemctl daemon-reload
systemctl restart docker

關(guān)掉防火墻

# 停止firewall
 systemctl stop firewalld.service
 # 禁止firewall開(kāi)機(jī)啟動(dòng)
 systemctl disable firewalld.service
 # 查看開(kāi)放端口列表
 firewall-cmd --list-ports
 # 開(kāi)放端口
 firewall-cmd--zone=public --add-port=2379/tcp --permanent 
 # 重新載入
 firewall-cmd --reload

2、將容器以指定IP鏈接到自定義網(wǎng)絡(luò)中

#容器cloud3以IP10.22.1.28鏈接到overlay網(wǎng)絡(luò)spark-net
 docker network connect --ip 10.22.1.28 spark-net cloud3

3、將容器從自定義網(wǎng)絡(luò)中刪除

# 注意不可在當(dāng)前容器里執(zhí)行斷連
 # 例如 需要斷連容器cloud2,則需要在容器cloud1中執(zhí)行如下命令
 docker network disconnect -f spark-net cloud2

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Dockerfile文件編寫(xiě)實(shí)戰(zhàn)練習(xí)及注意事項(xiàng)

    Dockerfile文件編寫(xiě)實(shí)戰(zhàn)練習(xí)及注意事項(xiàng)

    Dockerfile?是一個(gè)用于構(gòu)建?Docker?鏡像的文本文件,通過(guò)一系列指令來(lái)定義鏡像的構(gòu)建過(guò)程,這篇文章主要介紹了Dockerfile文件編寫(xiě)實(shí)戰(zhàn)練習(xí)及注意事項(xiàng)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Docker搭建青龍面板教程(圖文)

    Docker搭建青龍面板教程(圖文)

    青龍面板是一款用于管理和運(yùn)行腳本的Web界面,廣泛應(yīng)用于各類(lèi)自動(dòng)化腳本的管理,本文主要介紹了Docker搭建青龍面板教程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • CentOS 8安裝docker最詳細(xì)方法

    CentOS 8安裝docker最詳細(xì)方法

    本文給大家介紹CentOS 8安裝docker最詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-11-11
  • docker 如何刪除none鏡像

    docker 如何刪除none鏡像

    本篇文章主要介紹了docker 如何刪除none鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Docker安裝及基本使用方法詳細(xì)介紹

    Docker安裝及基本使用方法詳細(xì)介紹

    本篇文章主要介紹了Docker安裝及基本使用方法詳細(xì)介紹,對(duì)于初學(xué)者有一定的參考作用,有需要的可以了解一下。
    2016-11-11
  • ubuntu20.04 LTS安裝docker的方法步驟

    ubuntu20.04 LTS安裝docker的方法步驟

    這篇文章主要介紹了ubuntu20.04 LTS安裝docker的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 從0開(kāi)始了解Docker入門(mén)(小結(jié))

    從0開(kāi)始了解Docker入門(mén)(小結(jié))

    本篇文章主要介紹了從0開(kāi)始了解Docker(小結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Dockerfile中ENTRYPOINT 和 CMD的區(qū)別說(shuō)明

    Dockerfile中ENTRYPOINT 和 CMD的區(qū)別說(shuō)明

    這篇文章主要介紹了Dockerfile中ENTRYPOINT 和 CMD的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • docker容器單機(jī)創(chuàng)建3個(gè)節(jié)點(diǎn)的MySQLMGR集群方式

    docker容器單機(jī)創(chuàng)建3個(gè)節(jié)點(diǎn)的MySQLMGR集群方式

    本文檔詳細(xì)介紹了如何在單機(jī)上使用Docker創(chuàng)建一個(gè)包含三個(gè)節(jié)點(diǎn)的MySQL MGR集群,通過(guò)一系列步驟,包括安裝Docker、配置MySQL MGR以及啟動(dòng)多個(gè)容器,成功構(gòu)建了一個(gè)高可用的MySQL集群環(huán)境
    2026-01-01
  • Docker安裝Tomcat無(wú)法訪問(wèn)的問(wèn)題及解決

    Docker安裝Tomcat無(wú)法訪問(wèn)的問(wèn)題及解決

    這篇文章主要介紹了Docker安裝Tomcat無(wú)法訪問(wèn)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評(píng)論

周口市| 织金县| 淮阳县| 浮梁县| 穆棱市| 静宁县| 江津市| 卫辉市| 镇沅| 台前县| 万荣县| 永胜县| 定边县| 广汉市| 南皮县| 靖西县| 南京市| 晴隆县| 佛教| 葫芦岛市| 台南市| 图们市| 南投县| 长兴县| 荃湾区| 永登县| 类乌齐县| 宣化县| 石嘴山市| 佛学| 临海市| 鄂托克旗| 皋兰县| 英山县| 梅河口市| 庄浪县| 新干县| 尚志市| 平乐县| 辽阳市| 东莞市|