为什么docker-compose取决于工作目录?

时间:2018-06-08 21:19:27

标签: docker docker-compose

在不同的目录中调用docker-compose时,我会遇到冲突错误和网络问题:

冲突问题

搬运工-compose.yml

version: '3'
services:
  redis:
    image: "redis:alpine"
    container_name: redis

予。通过docker-compose =>创建和启动docker容器行

$ docker-compose  up --force-recreate -d
Creating redis ... done

II。通过docker-compose =>重新创建并启动docker容器行

$ docker-compose  up --force-recreate -d 
Recreating redis ... done

III。将docker-compose.yml复制到其他目录。    然后尝试从其他目录重新创建=> ERROR

$ cp docker-compose.yml  red2/
$ cd red2/
$ docker-compose  up --force-recreate -d

Creating redis ... error

ERROR: for redis  Cannot create container for service redis: Conflict. The container name "/redis" is already in use by container "1ba060b545f716731ac1c5992b680e4d4b3639fc0ffeb291899c712f0839d23a". You have to remove (or rename) that container to be able to reuse that name.
ERROR: Encountered errors while bringing up the project.

不同的网络

从docker-compose在不同目录中创建的容器也不共享同一网络。

$ docker network ls
NETWORK ID          NAME                       DRIVER              SCOPE
4a4af52e89cd        red2_default               bridge              local
57695428bd9d        redis_default              bridge              local

USECASE

我对szenario的用法:

  • 从不同的部署作业调用docker-compose。
  • 启动容器进行测试

问题

  1. 为什么存在目录依赖?是否可以选择关闭它?
  2. docker ps是否显示使用了哪个目录?

1 个答案:

答案 0 :(得分:0)

回答1:

目录名称用作默认项目名称。 您应该更好地指定项目名称:

docker-compose -p myproject up --force-recreate -d

问题2仍然开放