Docker提供了overlay driver,使用户可以创建基于VxLan的overlay网络。
VxLAN可将二层数据封装到UDP进行传输,VxLAN提供与VLAN相同的
以太网二层服务,但拥有更强的扩展性和灵活性。
Docker overlay网络需要一个key-value数据库用于保存网络状态信息,包括Network、Endpoint、IP等。Consul、Etcd、ZooKeeper都是Docker支持的key-value软件,这里使用Consul。
一、准备overlay网络环境
hosts3上部署Consul:
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
可以通过http://192.168.11.73:8500访问Consul:
从上图可以看到,加载的实际是文件/usr/lib/systemd/system/docker.service。
修改host1与host2的docker daemon的配置文件/usr/lib/systemd/system/docker.service。
--cluster-store:指定consul地址,表示存储在哪里
--cluster-advertise:告知consul自己的连接地址,本机网卡地址,2376为默认端口
重启docker daemon:
systemctl daemon-reload
systemctl restart docker.service
host1与hosts2将自动注册到Consul数据库:(点击KEY/VALUE,然后点击docker,nodes才会看到)
若物理网卡不支持vxlan,执行:

本文介绍了如何使用Docker创建基于VxLan的overlay网络,包括环境搭建、网络创建及容器间通信原理。通过示例展示了overlay网络如何实现跨主机通信,并解释了其内部工作机制。
最低0.47元/天 解锁文章
687

被折叠的 条评论
为什么被折叠?



