复制vmware overLay网络无法ping通 ping www.baidu.com可以
因為忘記關閉防火墻了!!!!!? ? 要永久關閉!!
?
修改hostname
https://blog.csdn.net/qq_27327261/article/details/109100219
?
關閉防火墻
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)創建overlay網絡
docker network create -d overlay --attachable prod-overlay?
3)創建10個overlay容器
docker service create -td --name c --replicas 10 --network prod-overlay busybox?
4)不同虛擬機的容器ping一下是可以ping通的
docker exec? ? c.1.0d5lp95bt73ou3t18zky09qc5? ? ping? ? ?c.3.e9blo0rq21tnppvkmg66nsygi
?
?
?
?
?
?
?
https://blog.csdn.net/mylitboy/article/details/106369721
Docker Swarm實現跨宿主機容器間訪問
麥粒橙?2020-05-27 06:05:47??264??收藏?1
分類專欄:?Docker?文章標簽:?docker?swarm
版權
使用Docker Swarm實現跨宿主機容器間訪問
背景:
在SerA服務器,運行了一個任務調度系統xxl容器ConA。
在SerB服務器,運行了一個SpringBoot服務ConB,注冊到任務調度系統中。
在任務調度系統中,看到的調度器節點IP是SerB服務器分配給ConB容器的IP地址。 導致任務調度系統調度失敗,提示ConB地址鏈接不上。
分析下來,是由于ConA和ConB是跨宿主機的容器,無法通信。
網上看到了很多方案,包括Overlay網絡、OpenvSwitch、consul方案等,最終使用Docker Swarm解決了,發現很簡單,過程如下。
1. 初始化swarm
在主節點運行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. 創建Overlay網絡
在主節點,創建overlay模式網絡。
docker network create --driver=overlay --gateway 192.168.1.1 --subnet 192.168.1.0/24 --attachable my_network # m3k69pn88gtre361upi可以通過docker network ls命令,查看網絡列表。
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. 子節點加入集群
復制上面初始化swarm命令結果中的語句,在子節點運行即可。
docker swarm join \--token SWMTKN-1-va82a0t3mhkbesirqb6lqgqlkmznbwxu4u75-ejrors790u9a0 \172.16.0.226:2377 # This node joined a swarm as a worker.可以在主節點,通過docker node ls命令,查看節點列表。
docker node ls # ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS # 0r4xjgtu4nd9tsbfn1lo5gu * ecs-01 Ready Active Leader # s67afk1e9nx0174yeqff6g2 ecs.h02 Ready Active4. 運行容器加入網絡
在容器運行命令中,加入--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/
一種生產環境Docker Overlay Network的配置方案
January 9, 2019
?
介紹一種生產環境Docker overlay network的配置方案。
概要
先講一下生產環境中的問題:
- 有多個Docker host,希望能夠通過Docker swarm連接起來。
- Docker swarm只適合于無狀態應用,不適合有狀態應用。
- 因此生產環境中會同時存在
- 無狀態應用:利用docker service create/docker stack deploy創建的。
- 有狀態應用:利用docker run/docker compose up創建的。
- 希望兩種應用能夠連接到同一個overlay網絡,在網絡內部能夠通過
- tasks.<service-name>?DNS name 連接到無狀態應用(見Container discovery)
- <container-name>?DNS name 連接到有狀態應用
解決辦法:
步驟
到manager節點上創建attachable的overlay network,名字叫做prod-overlay:
docker network create -d overlay --attachable prod-overlay在manager節點上查看這個網絡是否創建成功:
$ 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節點上查看這個網絡,這時你看不到這個網絡,不過不要擔心,當后面在worker節點上創建工作負載后就能看到了:
$ 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上創建容器c1,掛到prod-overlay?network上:
docker run --name c1 --network prod-overlay -itd busybox在worker上創建容器c2,掛到prod-overlay?network上:
docker run --name c2 --network prod-overlay -itd busybox在manager上創建service?c,掛到prod-overlay?network上:
docker service create -td --name c --replicas 2 --network prod-overlay busybox驗證
查看worker節點的network
之前在worker節點上沒有看到prod-overlay?network,現在你應該可以看見了:
$ 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確認容器可以互ping
到manager節點上,讓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節點上,讓c1?ping?tasks.c,tasks.c是之前創建的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節點上,讓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節點上,查看service?c的task,看到有c.1、c.2兩個task,分別部署在兩個節點上:
$ 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所在的節點上,查看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創建的容器的名字,要保證在整個集群里是唯一的。docker 不會幫你檢查名稱沖突的情況,如果名稱沖突了那么會得到錯誤的DNS結果。
參考資料
- Use overlay networks
- Use an overlay network for standalone containers
- Docker Reference Architecture: Designing Scalable, Portable Docker Container Networks
?
?
總結
以上是生活随笔為你收集整理的复制vmware overLay网络无法ping通 ping www.baidu.com可以的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李克男保镖简介(李克男让克林顿总统对她称
- 下一篇: 平板电脑pppoe拨号软件下载(PPPO