一、docker跨宿主机容器通讯--macvlan
自定义创建网络
docker network create -d bridge --subnet 172.30.0.0/16 --gateway 172.30.0.1 liangzeyu
[root@1 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
68de28fbcfa2 bridge bridge local
97ffb2bf08ee host host local
f26644a368ce liangzeyu bridge local
2a88f05650d5 none null local
接下来演示macvlan网络如何创建
macvlan类似于虚拟机的桥接网络
创建命令:
[root@1 ~]# docker network create -d macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=eth0 macvlan_1
3e91c657e7b9c3a974a5a9914b3e92e09d82009686d44f955ec531170d887b4b
启动容器的时候一定要指定网卡
[root@1 ~]# docker run -it --network macvlan_1 --ip 10.0.0.105 alpine:latest
二、docker跨宿主机容器通讯--overlay
创建consul存储库
[root@1 ~]# docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
##-h是指定容器里面的主机名
访问8500会出现consul的web管理界面
2、然后在其他主机上配置哈,如何其他集群主机,配置也如下,只是修改下advertise就行
##企业环境写内网地址,我这是测试环境
[root@baiduyueaaa ~ ] # cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"cluster-store": "consul://49.234.14.64:8500",
"cluster-advertise": "106.12.100.206:2376"
}
重启docker服务
systemctl restart docker
3、在服务端的consul界面上访问key/value
发现106的客户端已经进来了。
4、客户端创建网络
[root@baiduyueaaa ~ ] # docker network create -d overlay --subnet 172.26.0.0/16--gateway 172.26.0.1 liang
查看网络
[root@baiduyueaaa ~ ] # docker network ls
NETWORK ID NAME DRIVER SCOPE
3cf27dc55ad4 bridge bridge local
a20a436be108 host host local
54ab0121a530 liang overlay global
然后你会发现集群中的宿主机都会有这个networ网段。
===
测试在客户端主机上创建docker容器
[root@baiduyueaaa ~ ] # docker run -it --network liang --name liangzeyu a606bcc0a19 /bin/bash
然后在集群中的一台中 ping一下是通的
有问题请加博主微信进行沟通!
全部评论