docker-compose start «ОШИБКА: нет контейнеров для запуска»

98

Я пытаюсь использовать 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

Я подтвердил, что контейнеры докеров не работают. Как мне запустить мои контейнеры?

Причмп
источник

Ответы:

153

Проблема здесь в том, что вы на самом деле не создали контейнеры. Вам нужно будет создать эти контейнеры перед их запуском. docker-compose upВместо этого вы можете использовать , который создаст контейнеры, а затем запустит их.

Или вы можете запустить, docker-compose createчтобы создать контейнеры, а затем запустить, docker-compose startчтобы запустить их.

ИисусТиноко
источник
4
Что docker-compose buildделать?
Prichmp
8
docker-compose buildсоздает изображения из вашего файла docker-compose.yml.
JesusTinoco
11
Обратите внимание, что docker-compose createэто устарело. Вместо этого используйте upкоманду с --no-start.
B12Toaster
24

Причина , почему вы увидели ошибку в том , что 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.

Филипп Классен
источник