Error no containers to start
Я пытаюсь использовать Docker Compose (с помощью Docker Machine в Windows) для запуска группы контейнеров Docker.
Мой docker-compose.yml:
version: ‘2’
services:
postgres:
build: ./postgres
environment:
– POSTGRES_PASSWORD=mysecretpassword
frontend:
build: ./frontend
ports:
– “4567:4567”
depends_on:
– postgres
backend:
build: ./backend
ports:
– “5000:5000”
depends_on:
– postgres
docker-compose build выполняется успешно. Когда я запускаюdocker-compose start, я получаю следующий вывод:
Starting postgres … done
Starting frontend … done
Starting backend … done
ERROR: No containers to start
Я подтвердил, что контейнеры docker не запущены. Как мне запустить мои контейнеры?
Ответ
Проблема здесь в том, что вы на самом деле не создали контейнеры. Вам нужно будет создать эти контейнеры перед их запуском. Вы могли бы использовать docker-compose upвместо этого, который создаст контейнеры, а затем запустит их.
Или вы можете запуститьdocker-compose create, чтобы создать контейнеры, а затем запуститьdocker-compose start, чтобы запустить их.
Причина, по которой вы увидели ошибку, заключается в том, что docker-compose startи docker-compose restartпредположите, что контейнеры уже существуют.
Если вы хотите создавать и запускать контейнеры, используйте
docker-compose up
Если вы хотите только создавать контейнеры, используйте
docker-compose up –no-start
После docker-compose {start,restart,stop}этого должно работать так, как ожидалось.
Раньше была docker-compose createкоманда, но теперь она устарела в пользу docker-compose up –no-start.
How to fix docker-compose start ERROR: No containers to start
Проблема:
При запуске docker-compose startвы видите сообщение об ошибке, подобное этому:
fix-docker-compose-start-error-no-containers-to-start.sh
Starting mongodb … error
Starting myapp … error
ERROR: No containers to start
Решение:
Для запуска ваших контейнеров используйтеdocker-compose up, вместо docker-compose start!
Если этот пост помог вам, пожалуйста, подумайте о покупке мне кофе или пожертвовании через PayPal для поддержки исследований и публикации новых сообщений на TechOverflow
Docker-compose ERROR: No containers to start
Файл docker-compose.yml:
version: “3”
services:
webserver:
image: nginx
ports:
– “80:80”
volumes:
– .:/usr/share/nginx/html
Создаю сервис: docker-compose -p my up –no-start
Смотрю список контейнеров: docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99dabcf2b2cf nginx “nginx -g ‘daemon of…” 4 seconds ago Created my_webserver_1_5f7310de9b9a
Пробую запустить: docker-compose start
Starting webserver … done
ERROR: No containers to start
Но работает, если не указывать имя (-p my)
Пролистал команды в .bash_history ну вдруг что-то не то ввожу, так нет – те же команды. Вчера работало, сегодня ничего не обновлял.
Версия: docker-compose version 1.23.1, build b02f1306
Ответ
Смотрим документацию:
COMPOSE_PROJECT_NAME Задает имя проекта. Это значение добавляется вместе с именем службы к контейнеру при запуске. Например, если ваш проект называется myapp и включает в себя две службы db и web, то Compose запускает контейнеры с именами myapp_db_1 и myapp_web_1 соответственно. Установка этого параметра необязательна. Если вы не установите это значение, ИМЯ_КОМПОЗИТА_ПРОЕКТА по умолчанию используется базовое имя каталога проекта. См. Также Параметр командной строки -p.
Делаем выводы: т.к. создавали контейнер с префиксом “my” (флаг -p), то и запускать, видимо, нужно так же (либо и создавать, и запускать без -p с умолчальным значением).