Docker overlay 網(wǎng)絡(luò)搭建的方法
Overlay網(wǎng)絡(luò)是指通過在現(xiàn)有網(wǎng)絡(luò)上疊加一個(gè)軟件定義的邏輯網(wǎng)絡(luò),最大程度的保留原有網(wǎng)絡(luò),通過定義其上的邏輯網(wǎng)絡(luò),實(shí)現(xiàn)業(yè)務(wù)邏輯,解決原有數(shù)據(jù)中心的網(wǎng)絡(luò)問題。
快速開始
Docker跨主機(jī)網(wǎng)絡(luò)方案
docker 原生
- overlay
- macvlan
第三方方案
- flannel
- weave
- calico
之前介紹了Consul搭建集群,所以在此直接選用docker自帶的overlay方案來做,和Consul完美結(jié)合。
環(huán)境準(zhǔn)備
參考之前的一篇《Consul 搭建集群》準(zhǔn)備三臺(tái)虛機(jī)。
ip | |
---|---|
n1 | 172.20.20.10 |
n2 | 172.20.20.11 |
n3 | 172.20.20.12 |
在這三臺(tái)虛機(jī)上啟動(dòng)consul并創(chuàng)建集群
n1
[root@n1 vagrant]# consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=node1 -bind=172.20.20.10 -ui -client 0.0.0.0
n2
[root@n2 vagrant]# consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=node2 -bind=172.20.20.11 -ui -client 0.0.0.0 -join 172.20.20.10
n3
[root@n3 vagrant]# consul agent -server -bootstrap-expect 3 -data-dir /etc/consul.d -node=node3 -bind=172.20.20.12 -ui -client 0.0.0.0 -join 172.20.20.10
[root@n1 vagrant]# consul members Node Address Status Type Build Protocol DC Segment node1 172.20.20.10:8301 alive server 1.1.0 2 dc1 <all> node2 172.20.20.11:8301 alive server 1.1.0 2 dc1 <all> node3 172.20.20.12:8301 alive server 1.1.0 2 dc1 <all>
配置 docker
登錄n1
修改 /etc/sysconfig/docker-network
為
# /etc/sysconfig/docker-network DOCKER_NETWORK_OPTIONS=--cluster-store=consul://172.20.20.10:8500 --cluster-advertise=172.20.20.10:2376
其中ip部分為consul容器節(jié)點(diǎn)的ip。
在命令行中輸入 docker network create -d overlay myoverlay
創(chuàng)建一個(gè)名為myoverlay的網(wǎng)絡(luò),并用 docker network ls
檢查docker網(wǎng)絡(luò)列表
[root@n1 sysconfig]# docker network ls NETWORK ID NAME DRIVER SCOPE 5a8df7650e34 bridge bridge local 8e574df4fb90 docker_gwbridge bridge local d69aab5b2621 host host local 7301c62bca4d none null local [root@n1 sysconfig]# docker network create -d overlay myoverlay 36feac75fb49edcf8920ed39109424b833501268942fb563708aa306fccfb15c [root@n1 sysconfig]# docker network ls NETWORK ID NAME DRIVER SCOPE 5a8df7650e34 bridge bridge local 8e574df4fb90 docker_gwbridge bridge local d69aab5b2621 host host local 36feac75fb49 myoverlay overlay global 7301c62bca4d none null local
登錄 n2
修改 /etc/sysconfig/docker-network
為
# /etc/sysconfig/docker-network DOCKER_NETWORK_OPTIONS=--cluster-store=consul://172.20.20.11:8500 --cluster-advertise=172.20.20.11:2376
這里不用再次新建立myoverlay網(wǎng)絡(luò)了,因?yàn)樗麄兪且粋€(gè)集群。直接檢查網(wǎng)絡(luò)列表
[root@n2 vagrant]# docker network ls NETWORK ID NAME DRIVER SCOPE 9f2b7d40a69f bridge bridge local 1d9ee9546c81 docker_gwbridge bridge local e1f72fa7710c host host local 36feac75fb49 myoverlay overlay global 372109bb13bc none null local
發(fā)現(xiàn)myoverlay已經(jīng)在其中。
同理操作n3
[root@n3 vagrant]# docker network ls NETWORK ID NAME DRIVER SCOPE 14cf16d37c9b bridge bridge local ca426545fedb docker_gwbridge bridge local b57d2f555fa2 host host local 36feac75fb49 myoverlay overlay global fcb5da0380e4 none null local
啟動(dòng)容器 驗(yàn)證overlay網(wǎng)絡(luò)
登錄n1以myoverlay啟動(dòng)一個(gè)busybox的容器
[root@n1 sysconfig]# docker run --network myoverlay busybox
查看busybox容器詳情,在最底部有網(wǎng)絡(luò)相關(guān)的信息
"Networks": { "myoverlay": { "IPAMConfig": null, "Links": null, "Aliases": [ "e7d558b35607" ], "NetworkID": "36feac75fb49edcf8920ed39109424b833501268942fb563708aa306fccfb15c", "EndpointID": "6b1c975847b506a151940893e3ac189a7053cb34dda4ec2b5797c93f6eeb3534", "Gateway": "", "IPAddress": "10.0.0.2", "IPPrefixLen": 24, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:0a:00:00:02" } }
可以看到網(wǎng)絡(luò)是myoverlay ip
為 10.0.0.2
登錄n2myoverlay
啟動(dòng)一個(gè)busybox的容器
[root@n2 sysconfig]# docker run --network myoverlay busybox
查看busybox容器詳情,在最底部有網(wǎng)絡(luò)相關(guān)的信息
"Networks": { "myoverlay": { "IPAMConfig": null, "Links": null, "Aliases": [ "f673ccb5ab32" ], "NetworkID": "36feac75fb49edcf8920ed39109424b833501268942fb563708aa306fccfb15c", "EndpointID": "39f8e9e098ce3faf039aa60e275ec90428f86c6378f5b4c54d8682741e71673f", "Gateway": "", "IPAddress": "10.0.0.3", "IPPrefixLen": 24, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:0a:00:00:03" } }
這個(gè)busybox的ip為10.0.0.3
進(jìn)入容器,ping 10.0.0.2
[root@n2 vagrant]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f673ccb5ab32 busybox "sh" 2 minutes ago Up 2 minutes objective_pare [root@n2 vagrant]# docker exec -ti f673ccb5ab32 /sh / # ping 10.0.0.2 PING 10.0.0.2 (10.0.0.2): 56 data bytes 64 bytes from 10.0.0.2: seq=0 ttl=64 time=1.309 ms 64 bytes from 10.0.0.2: seq=1 ttl=64 time=0.535 ms 64 bytes from 10.0.0.2: seq=2 ttl=64 time=1.061 ms 64 bytes from 10.0.0.2: seq=3 ttl=64 time=0.764 ms ^C --- 10.0.0.2 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.535/0.917/1.309 ms
ping 是通的, overlay 網(wǎng)絡(luò)搭建成功!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
docker-compose部署配置jenkins的詳細(xì)教程
這篇文章主要介紹了docker-compose部署配置jenkins的詳細(xì)教程,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07記 -bash: docker-compose: command not&nbs
這篇文章主要介紹了記 -bash: docker-compose: command not found 的問題解決方法,本文給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01Ubuntu 搭建基于Docker的LNMP+Redis的開發(fā)環(huán)境(圖文)
這篇文章主要介紹了Ubuntu 搭建基于Docker的LNMP+Redis的開發(fā)環(huán)境的相關(guān)資料,這里詳細(xì)介紹如何搭建的步驟,并附圖文,需要的朋友可以參考下2016-12-12Docker部署Mysql,.Net6,Sqlserver等容器
這篇文章介紹了Docker部署Mysql,.Net6,Sqlserver等容器的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12Docker如何同時(shí)啟動(dòng)多個(gè)服務(wù)
這篇文章主要為大家詳細(xì)介紹了Docker如何同時(shí)啟動(dòng)多個(gè)服務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10