У меня есть набор докеров, который я запускаю, пока довольно простой
Я хочу запустить несколько экземпляров своего проекта, и я прочитал этот Запустить несколько докеров
Теперь при запуске docker-compose up -d
compose не добавляет имя проекта к контейнерам, таким как docker-compose up -p PRNAME -d
, и я получаю следующую ошибку:
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
Да, я вручную указываю container_name в docker-compose.yml
Когда вы явно устанавливаете container_name:
в своем docker-compose.yml
файле, имя контейнера будет точно, как вы укажете; Docker Compose не добавит к нему свой префикс для каждого каталога.
Обычно для вас это совершенно не имеет значения, и удалить container_name:
безопасно. Вы по-прежнему сможете получить доступ к другим контейнерам, используя их имя службы в docker-compose.yml
в качестве имен хостов, а docker-compose
CLI предоставляет оболочки для команд управления, таких как docker-compose stop
, которые будут действовать на правильный контейнер.
У вас также возникнут проблемы с ports:
, и здесь нет четкого решения. Только один контейнер или процесс может привязываться к определенному порту на узле. Вы можете не указывать первый номер порта в ports:
, и Docker выберет для вас порт.
ports:
- '80'
- '443'
но тогда нужно вручную найдите соответствующий номер порта хоста
docker-compose port service1 80
О да, теперь для меня это имеет смысл СПАСИБО! Я уже однажды сталкивался с этой проблемой с портами при попытке масштабирования с использованием параметра --scale, но да, мне придется позволить докеру выбрать их за меня.
Можете ли вы добавить образец минимального файла
docker-compose.yml
к вопросу, который показывает поведение, которое вы описываете? (Вы вручную указываетеcontainer_name:
?)