Py学习  »  docker

Docker compose in another directory影响其他容器

Anthony B. Rhoden • 7 年前 • 2152 次点击  

我有个问题。我用我的 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

怎么了?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44006
文章 [ 2 ]  |  最新文章 7 年前
Vinícius Alonso
Reply   •   1 楼
Vinícius Alonso    7 年前

我相信这是因为在您尝试新项目时,上一个项目上的容器继续运行。

尝试在当前文件夹上停止前一个文件夹上的容器。

David Maze
Reply   •   2 楼
David Maze    7 年前

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文件 文件位于项目的顶层目录中,这可能有助于消除歧义。