docker-compose启动的网络名称:
1、没有自定义网络名
$ cat docker-compose.yaml
version: '2'
services:
zookeeper1:
image: zookeeper
container_name: zookeeper1
environment:
- ZOO_MY_ID=1
- ZOO_SERVERS=server.1=zookeeper1:2888:3888
实际使用的网络是:<当前路径名_default>,如果<当前路径名>太长,会截取前缀部分。
例如当然目录名为testdocker,那么最终生产的网络名为:testdocker_default
$ docker network ls
abf87f64de25 testdocker_default bridge local
$ cat docker-compose.yaml
version: '2'
networks:
byfn:
services:
zookeeper1:
image: zookeeper
container_name: zookeeper1
environment:
- ZOO_MY_ID=1
- ZOO_SERVERS=server.1=zookeeper1:2888:3888
networks:
- byfn
定义网络名为byfn,那么最终生产的网络名为:<当前路径名_byfn>。
相对于之前没有定义的时候,把default替换成了定义的网络名,同样还是使用路径名作为前缀。
$ docker network ls
abf87f64de25 testdocker_byfn bridge local
当然使用路径名作为网络名是很不友好的,docker-compose使用环境变量来取代路径名。
设置环境变量:COMPOSE_PROJECT_NAME
$ cat .env
COMPOSE_PROJECT_NAME=aaa
这时网络名如下:
$ docker network ls
967ef0d41dd6 aaa_byfn bridge local
所以,docker-compose的网络名的规则是:<COMPOSE_PROJECT_NAME>_<NETWORKS>
1、如果NETWORKS没有定义,那么就是default。
2、如果COMPOSE_PROJECT_NAME,那么就是当前路径名(取前缀)。