我有个问题。我在一个项目中使用了docker-compose文件。然后,我将其复制到另一个目录,以便运行另一个容器。但是每当我这样做的时候,它会重新创建现有的容器,或者如果我使用down命令,它也会销毁另一个目录中的容器,这会是什么问题呢?
这是我的配置。
version: '3.5'
services:
postgres:
image: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
PGDATA: /data/postgres
volumes:
- postgres:/data/postgres
ports:
- "5440:5432"
networks:
- postgres
restart: unless-stopped
pgadmin:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: admin@admin.com
PGADMIN_DEFAULT_PASSWORD: rootme
volumes:
- pgadmin:/root/.pgadmin
ports:
- "8440:80"
networks:
- postgres
restart: unless-stopped
networks:
postgres:
driver: bridge
volumes:
postgres:
pgadmin:例如,当我从另一个目录运行docker-compose up -d时,它会重新创建容器
Recreating docker_postgres_1 ... done
Recreating docker_pgadmin_1 ... done问题出在哪里?
发布于 2019-02-25 08:04:21
Docker Compose将名称前缀附加到它创建的所有内容,但默认前缀仅基于当前目录的基名。如果你有像这样的布局
projectA
+-- docker
| \-- docker-compose.yml
projectB
\-- docker
\-- docker-compose.yml然后,两个docker-compose实例都会认为项目名称只是docker (包含docker-compose.yml的目录的名称),并创建容器名称,例如docker_postgres_1。
您可以通过使用docker-compose -p option或setting a COMPOSE_PROJECT_NAME environment variable重命名其中一个目录来解决此问题。在项目的顶级目录中看到docker-compose.yml文件并不少见,这可能有助于消除歧义。
发布于 2019-02-25 06:36:29
我相信这是因为在您尝试新项目时,前一个项目上的容器仍在运行。
尝试在当前文件夹之前停止前一个文件夹上的容器。
https://stackoverflow.com/questions/54857158
复制相似问题