docker@多个docker-compose文件下容器互通
目的
解决不同docker-compose在容器自动注册服务,服务间相互调用不通问题。
解决
通过自定义外部网络,不同文件引用外部网络
1.自定义网络
# 自动选择合适网段创建bridge
docker network create external-net
# 查看本机所有有网络的子网(防止自定义冲突)
docker network inspect $(docker network ls -q) | grep Subnet
# 创建自定义bridge
docker network create \
--driver=bridge \
--subnet=192.168.100.0/24 \
--gateway=192.168.100.1 \
shared-net
2.引用外部网络
1 | # 1 |
app1和app2都连接到了shared-net网络中,容器名最好显式设置container_name
3.支持自定义容器ip
1 | # 容器ip非固定 |
4.查看本机所有容器ip
docker inspect -f '{{ .Name }} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker-compose ps -q)