环境:docker Server Version: 18.03.0-ce。
如何配置多台主机上的docker容器在同一个网络环境。通过docker自带的overlay可以实现。关于overlay的一些概念自行google。下面详细说明下如何配置。
- 想让两个网络环境下的容器互通,那么必然涉及到网络信息的同步,所以需要先配置一下consul。直接运行下面命令。启动consul。
docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
- 既然同步网络信息的工具安装好了,那么肯定需要容器能够使用这个同步工具,以便consul能够找到各个服务器的docker节点。修改各个节点 docker的启动配置文件/lib/systemd/system/docker.service。在 ExecStart 最后添加
--cluster-store=consul://<consul服务的ip地址>:8500 --cluster-advertise=eth0(当前对外ip使用的网卡名或者直接使用当前ip):2376
- 保证所有主机的docker配置文件都与2一致,这样就能保证所有的docker overlay网络同步在consul上。
- 基本上需要配置的工作我们都已经完成了。这样就该享受成果咯
在随机一台机器上创建overlay网络(比如我想创建的docker的mongo集群网络互通,我创建了一个mongo的overlay的网络):
docker network create -d overlay mongo
- 这个时候,你在别的机器上执行
docker network ls
,你将能够看到在上一台机器创建的overlay网络。
网友评论