Почему docker-compose зависит от рабочего каталога? - PullRequest
0 голосов
/ 09 июня 2018

При вызове docker-compose в разных каталогах у меня возникают конфликтные ошибки и проблемы с сетью:

Проблема с конфликтами

docker-compose.yml

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

I.создать и запустить Docker-контейнер с помощью docker-compose => OK

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

II.пересоздать и запустить Docker-контейнер с помощью docker-compose => OK

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

III.скопируйте docker-compose.yml в другой каталог.Затем попробуйте воссоздать из другого каталога => ОШИБКА

$ 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

Мой сценарий использования для этого сценария:

  • Вызов docker-compose из разных заданий развертывания.
  • Запустить контейнеры для тестирования

Вопросы

  1. Почему существует зависимость от каталога?Есть ли возможность отключить его?
  2. Показывает ли docker ps, какой каталог использовался?

1 Ответ

0 голосов
/ 09 июня 2018

Ответ за 1:

Имя каталога используется в качестве имени проекта по умолчанию.Вам лучше указать название проекта:

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

Вопрос 2 еще открыт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...