docker compose设置不同容器间通信
docker compose新启动了一个容器,这个时候怎么去连接到其他容器呢,去容器里面ping发现不通。一般来说是因为和其他容器没有在一个网络环境里面。首先用命令查看一下当前存在哪些网络环境。
使用命令
docker network ls
这个时候一般来说已经存在的服务容器,已经存在于这些网络环境之内了,然后尝试加入这些网络环境。下面以加入docker_backend为例演示。
version: '2'
services:
service1:
image: images:v1
ports:
- "12345:12345"
volumes:
- ./:/
stdin_open: true
tty: true
privileged: true
networks:
- docker_backend
networks:
docker_backend:
external: true
然后尝试构建并启动容器
docker-compose up service1
基本上就可以成功启动容器了,这里要注意docker_backend一定要是一个已经存在的network,否则启动将会报错。
如果需要新建新的网络环境,使用命令
docker network create newnetwork
然后各services同时连接到新创建的网络环境即可。