我使用多个docker-compose.yaml从传感器启动multiple services到mount data,在不同的时间内进行后续的数据读取。但是,当我在另一个目录中运行docker-compose up命令时,我发现它会影响我早些时候启动的服务。目录和代码如下:
7-11-am
# ~/Datasets/7-11/am
version: '3.7'
services:
sensor-db:
image: influxdb:1.7.6
container_name: sensordb-7-11-am
ports:
- "8183:8086"
volumes:
- $PWD/.influxdb:/var/lib/influxdb7-11-pm
# ~/Datasets/7-11/pm
version: '3.7'
services:
sensor-db:
image: influxdb:1.7.6
container_name: sensordb-7-11-pm
ports:
- "8184:8086"
volumes:
- $PWD/.influxdb:/var/lib/influxdb7-13 pm
# ~/Datasets/7-13/pm
version: '3.7'
services:
sensor-db:
image: influxdb:1.7.6
container_name: sensordb-7-13-pm
ports:
- "8188:8086"
volumes:
- $PWD/.influxdb:/var/lib/influxdb当我使用docker-compose up启动前两个时间段时,它不会发送重新创建问题,并且当我运行服务在7-13下午挂载数据时,我发现坞-组合输出正在重新创建感应器-7-11-pm,然后通过docker ps命令将sensordb 7-11-pm服务替换为sensordb 7-13-pm服务。
这不是我所期望的,the container names of the services是不一样的,但是它们为什么会相互影响?
但我不知道怎么找到相关的问题。
如果你能告诉我为什么会出现这个问题,以及如何解决这个问题,我将不胜感激。
发布于 2020-07-18 14:25:51
Compose有一个项目名称的概念,以及该项目中的服务名称。默认项目名称是保存docker-compose.yml文件的目录的基本名称。在您的例子中,即使您有三个目录和三个docker-compose.yml文件,从Compose的角度来看,您只有两个名为am和pm的“项目”。
当您运行"7-13-pm“文件时,组合查找与项目名称pm和服务名称sensor-db匹配的容器。它发现(从sensordb-7-11-pm容器中),因此它替换了它。不管您是否重写了默认的container_name:。
解决这个问题的最简单的方法就是重命名目录。而不是7-11/pm和7-13/pm,将它们重命名为7-11-pm和7-13-pm,删除层次结构层。您还可以设置COMPOSE_PROJECT_NAME环境变量或使用docker-compose -p选项来设置项目名称(在每次docker-compose调用上;这不是我的首选)。
https://stackoverflow.com/questions/62969110
复制相似问题