时间:2021-05-19
同样是两台服务器:
准备工作:
设置容器的主机名
consul:kv类型的存储数据库(key:value)docker01、02上:vim /etc/docker/daemon.json{ "hosts":["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"], 这行改了要修改自己的docker配置文件 "cluster-store": "consul://10.0.0.11:8500", "cluster-advertise": "10.0.0.11:2376" 另外一台写自己的ip即可}vim /etc/docker/daemon.jsonvim /usr/lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock 这行改成这样,两台的都要改systemctl daemon-reloadsystemctl restart dockerdocker01上:
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap 这条命令在设置容器的主机名之后做[root@docker1 centos_zabbix]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE10.0.0.11:5000/kode v2 6914fda5fd44 4 hours ago 502MBkode v2 6914fda5fd44 4 hours ago 502MB10.0.0.11:5000/centos6.9_nginx_ssh v3 92b1087df3f5 13 hours ago 431MBcentos6.9_nginx_ssh v3 92b1087df3f5 13 hours ago 431MBcentos6.9_nginx_ssh v2 6307e23ee16d 13 hours ago 431MB<none> <none> b94c822488f9 13 hours ago 431MBcentos6.9_nginx_ssh v1 f01eeebf918a 13 hours ago 431MB<none> <none> 54167f1d659b 13 hours ago 431MB<none> <none> 71474e616504 13 hours ago 430MBcentos6.9_ssh v2 03387f99f022 14 hours ago 307MB<none> <none> 82d0e9ce844b 14 hours ago 195MBkode v1 c0f486ac58fe 15 hours ago 536MBprogrium/consul latest 09ea64205e55 4 years ago 69.4MB 这里有了[root@docker1 centos_zabbix]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1016753ee64d progrium/consul "/bin/start -server …" 4 minutes ago Exited (255) 3 minutes ago 53/tcp, 53/udp, 8300-8302/tcp, 8400/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp consul最后在页面上访问:
2)创建overlay网络
docker network create -d overlay --subnet 172.16.1.0/24 --gateway 172.16.1.254 ol1 这个网段不能和宿主机上相同,并且随便在一台上执行这个命令即可
查看容器的网络,有没有出现overlay
[root@docker1 shell]# docker network lsNETWORK ID NAME DRIVER SCOPEe480a4fe5f4b bridge bridge local0a3cbfe2473f host host local4e5ccdc657e1 macvlan_1 macvlan localaab77f02a0b1 none null local8ae111afded7 ol1 overlay global3)启动容器测试
一台上:docker run -it --network ol1 --name test01 centos6.9_ssh:v2 /bin/bash另外一台上:docker run -it --network ol1 --name test02 centos6.9_ssh:v2 /bin/bash 之后可以通过test01和test02之间联通之后可以通过test01和test02之间联通
真实原理:
每个容器有两块网卡,eth0实现容器间的通讯,eth1实现容器访问外网
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、docker跨主机通信docker跨主机网络方案包括:docker原生的overlay和macvlan。第三方方案:常用的包括flannel、weave和c
为支持容器跨主机通信,Docker提供了overlaydriver,使用户可以创建基于VxLAN的overlay网络。VxLAN可将二层数据封装到UDP进行传输
一、MacVlan实现Docker的跨主机网络通信的方案有很多,如之前博文中写到的通过部署Consul服务实现Docker容器跨主机通信Macvlan工作原理:
概述就目前Docker自身默认的网络来说,单台主机上的不同Docker容器可以借助docker0网桥直接通信,这没毛病,而不同主机上的Docker容器之间只能通
概述就目前Docker自身默认的网络来说,单台主机上的不同Docker容器可以借助docker0网桥直接通信,这没毛病,而不同主机上的Docker容器之间只能通