复制vmware overLay网络无法ping通 ping www.baidu.com可以
因為忘記關(guān)閉防火墻了!!!!!? ? 要永久關(guān)閉!!
?
修改hostname
https://blog.csdn.net/qq_27327261/article/details/109100219
?
關(guān)閉防火墻
https://blog.csdn.net/qq_27327261/article/details/109099020
?
1) 初始化swarm
docker swarm init # Swarm initialized: current node (0r4xjgtu4nd9txrsbfn1lo5gu) is now a manager. # # To add a worker to this swarm, run the following command: # # docker swarm join \ # --token SWMTKN-1-0q35cj5j0va82a0t3mhkbesirqb6lqgqlkmznbwx1ojbou4u75-ejrors77ezcw25nmy9g90u9a0 \ # 172.16.0.226:2377 # # To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.?
2)創(chuàng)建overlay網(wǎng)絡(luò)
docker network create -d overlay --attachable prod-overlay?
3)創(chuàng)建10個overlay容器
docker service create -td --name c --replicas 10 --network prod-overlay busybox?
4)不同虛擬機(jī)的容器ping一下是可以ping通的
docker exec? ? c.1.0d5lp95bt73ou3t18zky09qc5? ? ping? ? ?c.3.e9blo0rq21tnppvkmg66nsygi
?
?
?
?
?
?
?
https://blog.csdn.net/mylitboy/article/details/106369721
Docker Swarm實現(xiàn)跨宿主機(jī)容器間訪問
麥粒橙?2020-05-27 06:05:47??264??收藏?1
分類專欄:?Docker?文章標(biāo)簽:?docker?swarm
版權(quán)
使用Docker Swarm實現(xiàn)跨宿主機(jī)容器間訪問
背景:
在SerA服務(wù)器,運(yùn)行了一個任務(wù)調(diào)度系統(tǒng)xxl容器ConA。
在SerB服務(wù)器,運(yùn)行了一個SpringBoot服務(wù)ConB,注冊到任務(wù)調(diào)度系統(tǒng)中。
在任務(wù)調(diào)度系統(tǒng)中,看到的調(diào)度器節(jié)點(diǎn)IP是SerB服務(wù)器分配給ConB容器的IP地址。 導(dǎo)致任務(wù)調(diào)度系統(tǒng)調(diào)度失敗,提示ConB地址鏈接不上。
分析下來,是由于ConA和ConB是跨宿主機(jī)的容器,無法通信。
網(wǎng)上看到了很多方案,包括Overlay網(wǎng)絡(luò)、OpenvSwitch、consul方案等,最終使用Docker Swarm解決了,發(fā)現(xiàn)很簡單,過程如下。
1. 初始化swarm
在主節(jié)點(diǎn)運(yùn)行docker swarm init,初始化swarm。
docker swarm init # Swarm initialized: current node (0r4xjgtu4nd9txrsbfn1lo5gu) is now a manager. # # To add a worker to this swarm, run the following command: # # docker swarm join \ # --token SWMTKN-1-0q35cj5j0va82a0t3mhkbesirqb6lqgqlkmznbwx1ojbou4u75-ejrors77ezcw25nmy9g90u9a0 \ # 172.16.0.226:2377 # # To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.2. 創(chuàng)建Overlay網(wǎng)絡(luò)
在主節(jié)點(diǎn),創(chuàng)建overlay模式網(wǎng)絡(luò)。
docker network create --driver=overlay --gateway 192.168.1.1 --subnet 192.168.1.0/24 --attachable my_network # m3k69pn88gtre361upi可以通過docker network ls命令,查看網(wǎng)絡(luò)列表。
docker network ls # NETWORK ID NAME DRIVER SCOPE # acaeb6e14a1e bridge bridge local # a8e5fdd055b9 docker_gwbridge bridge local # b50eb414bcb4 host host local # om6lst4j52go ingress overlay swarm # m3k69pn88gtr my_network overlay swarm # 0c76adacfcfc none null local3. 子節(jié)點(diǎn)加入集群
復(fù)制上面初始化swarm命令結(jié)果中的語句,在子節(jié)點(diǎn)運(yùn)行即可。
docker swarm join \--token SWMTKN-1-va82a0t3mhkbesirqb6lqgqlkmznbwxu4u75-ejrors790u9a0 \172.16.0.226:2377 # This node joined a swarm as a worker.可以在主節(jié)點(diǎn),通過docker node ls命令,查看節(jié)點(diǎn)列表。
docker node ls # ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS # 0r4xjgtu4nd9tsbfn1lo5gu * ecs-01 Ready Active Leader # s67afk1e9nx0174yeqff6g2 ecs.h02 Ready Active4. 運(yùn)行容器加入網(wǎng)絡(luò)
在容器運(yùn)行命令中,加入--network my_network --ip 192.168.1.123即可。
docker run -it -d --network my_network --ip 192.168.1.123 ubuntu?
?
?
?
?
https://chanjarster.github.io/post/docker-overlay-network/
一種生產(chǎn)環(huán)境Docker Overlay Network的配置方案
January 9, 2019
?
介紹一種生產(chǎn)環(huán)境Docker overlay network的配置方案。
概要
先講一下生產(chǎn)環(huán)境中的問題:
- 有多個Docker host,希望能夠通過Docker swarm連接起來。
- Docker swarm只適合于無狀態(tài)應(yīng)用,不適合有狀態(tài)應(yīng)用。
- 因此生產(chǎn)環(huán)境中會同時存在
- 無狀態(tài)應(yīng)用:利用docker service create/docker stack deploy創(chuàng)建的。
- 有狀態(tài)應(yīng)用:利用docker run/docker compose up創(chuàng)建的。
- 希望兩種應(yīng)用能夠連接到同一個overlay網(wǎng)絡(luò),在網(wǎng)絡(luò)內(nèi)部能夠通過
- tasks.<service-name>?DNS name 連接到無狀態(tài)應(yīng)用(見Container discovery)
- <container-name>?DNS name 連接到有狀態(tài)應(yīng)用
解決辦法:
步驟
到manager節(jié)點(diǎn)上創(chuàng)建attachable的overlay network,名字叫做prod-overlay:
docker network create -d overlay --attachable prod-overlay在manager節(jié)點(diǎn)上查看這個網(wǎng)絡(luò)是否創(chuàng)建成功:
$ docker network lsNETWORK ID NAME DRIVER SCOPE fbfde97ed12a bridge bridge local 73ab6bbac970 docker_gwbridge bridge local a2adb3de5f7a host host local nm7pgzuh6ww4 ingress overlay swarm 638e550dab67 none null local qqf78g8iio10 prod-overlay overlay swarm在worker節(jié)點(diǎn)上查看這個網(wǎng)絡(luò),這時你看不到這個網(wǎng)絡(luò),不過不要擔(dān)心,當(dāng)后面在worker節(jié)點(diǎn)上創(chuàng)建工作負(fù)載后就能看到了:
$ docker network lsNETWORK ID NAME DRIVER SCOPE fbfde97ed12a bridge bridge local 73ab6bbac970 docker_gwbridge bridge local a2adb3de5f7a host host local nm7pgzuh6ww4 ingress overlay swarm 638e550dab67 none null local在manager上創(chuàng)建容器c1,掛到prod-overlay?network上:
docker run --name c1 --network prod-overlay -itd busybox在worker上創(chuàng)建容器c2,掛到prod-overlay?network上:
docker run --name c2 --network prod-overlay -itd busybox在manager上創(chuàng)建service?c,掛到prod-overlay?network上:
docker service create -td --name c --replicas 2 --network prod-overlay busybox驗證
查看worker節(jié)點(diǎn)的network
之前在worker節(jié)點(diǎn)上沒有看到prod-overlay?network,現(xiàn)在你應(yīng)該可以看見了:
$ docker network ls NETWORK ID NAME DRIVER SCOPE 01180b9d4833 bridge bridge local cd94df435afc docker_gwbridge bridge local 74721e7670eb host host local nm7pgzuh6ww4 ingress overlay swarm 32e6853ea78d none null local dw8kd2nb2yl3 prod-overlay overlay swarm確認(rèn)容器可以互ping
到manager節(jié)點(diǎn)上,讓c1?ping?c2
$ docker exec c1 ping -c 2 c2 PING c2 (10.0.2.2): 56 data bytes 64 bytes from 10.0.2.2: seq=0 ttl=64 time=0.682 ms 64 bytes from 10.0.2.2: seq=1 ttl=64 time=0.652 ms到manager節(jié)點(diǎn)上,讓c1?ping?tasks.c,tasks.c是之前創(chuàng)建的service?c的DNS name:
$ docker exec c1 ping -c 2 tasks.c PING tasks.c (10.0.2.8): 56 data bytes 64 bytes from 10.0.2.8: seq=0 ttl=64 time=2.772 ms 64 bytes from 10.0.2.8: seq=1 ttl=64 time=0.694 ms到manager節(jié)點(diǎn)上,讓c1?查詢?tasks.c的DNS name,可以看到tasks.c有兩條記錄:
$ docker exec c1 nslookup -type=a tasks.c Server: 127.0.0.11 Address: 127.0.0.11:53Non-authoritative answer: Name: tasks.c Address: 10.0.2.7 Name: tasks.c Address: 10.0.2.8到manager節(jié)點(diǎn)上,查看service?c的task,看到有c.1、c.2兩個task,分別部署在兩個節(jié)點(diǎn)上:
$ docker service ps c ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS p5n70vhtnz2f c.1 busybox:latest docker-learn-1 Running Running 17 minutes ago byuoox1t7cve c.2 busybox:latest docker-learn-2 Running Running 17 minutes ago到c.1?task所在的節(jié)點(diǎn)上,查看task?c.1的容器名:
$ docker ps -f name=c.1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 795a3bd3c20a busybox:latest "sh" 21 minutes ago Up 21 minutes c.1.p5n70vhtnz2f5q8p2pcvbyfmw然后在c1里ping task?c.1的容器名:
$ docker exec c1 ping -c 2 c.1.p5n70vhtnz2f5q8p2pcvbyfmw PING c.1.p5n70vhtnz2f5q8p2pcvbyfmw (10.0.2.7): 56 data bytes 64 bytes from 10.0.2.7: seq=0 ttl=64 time=0.198 ms 64 bytes from 10.0.2.7: seq=1 ttl=64 time=0.128 ms你同樣可以:
- 在c2里:
- ping?c1
- ping?tasks.c
- ping task?c.1、c.2的容器
- 在task?c.1、c.2的容器里:
- ping?c1、c2;
- ping?tasks.c
- ping task?c.1、c.2的容器
注意
通過docker run?/?docker compose up創(chuàng)建的容器的名字,要保證在整個集群里是唯一的。docker 不會幫你檢查名稱沖突的情況,如果名稱沖突了那么會得到錯誤的DNS結(jié)果。
參考資料
- Use overlay networks
- Use an overlay network for standalone containers
- Docker Reference Architecture: Designing Scalable, Portable Docker Container Networks
?
?
總結(jié)
以上是生活随笔為你收集整理的复制vmware overLay网络无法ping通 ping www.baidu.com可以的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李克男保镖简介(李克男让克林顿总统对她称
- 下一篇: centos7 切换中文输入法 无需