Docker создает не добавляя имя проекта к именам контейнеров при запуске нескольких экземпляров - PullRequest
0 голосов
/ 27 мая 2019

У меня есть набор Docker, который я запускаю, используя docker-compose up -d довольно простой до сих пор

Я хочу запустить несколько экземпляров моего проекта, и я прочитал это Запуск нескольких Docker Compose

Теперь при запуске docker-compose up -p PRNAME -d compose не добавляет имя проекта к контейнерам, таким как prname_container1, и я получаю следующую ошибку:

ERROR: for container1  Cannot create container for service service1: Conflict. The container name "/container1" is already in use by container "f7aeb2ef782556ae5b0". You have to remove (or rename) that container to be able to reuse that name.

Я мог бы что-то упустить здесь.

Часть моего docker-compose.yml выглядит как

services:
  service1:
    image: "${PROJECT_REPO}:image"
    container_name: "container1"
    ports:
      - 443:443
      - 8000:80
    networks:
      - db
      - proxy
      - oauth
    depends_on:
      - db

1 Ответ

1 голос
/ 27 мая 2019

Когда вы явно устанавливаете container_name: в своем файле docker-compose.yml, имя контейнера будет точно , что вы укажете;Docker Compose не будет добавлять к нему префикс для каждого каталога.

Обычно это вообще не имеет значения, и удалить его безопасно container_name:.Вы по-прежнему сможете получать доступ к другим контейнерам, используя их имена служб в docker-compose.yml в качестве имен хостов, а CLI docker-compose предоставляет оболочки для команд управления, таких как docker-compose stop, которые будут работать с правильным контейнером.

Youтакже будет проблема с ports:, и здесь нет более ясного решения.Только один контейнер или процесс может связываться с конкретным портом на хосте.Вы можете пропустить первый номер порта в ports:, и Docker выберет для вас порт

ports:
  - '80'
  - '443'

, но затем вам нужно вручную найти соответствующий номер порта хоста

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