Docker-compose start "ERROR: No hay contenedores para iniciar"

98

Estoy tratando de usar Docker Compose (con Docker Machine en Windows) para lanzar un grupo de contenedores Docker.

Mi 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 buildse ejecuta con éxito. Cuando ejecuto docker-compose start, obtengo el siguiente resultado:

Starting postgres ... done
Starting frontend ... done
Starting backend ... done
ERROR: No containers to start

Confirmé que los contenedores de la ventana acoplable no se están ejecutando. ¿Cómo hago que comiencen mis contenedores?

Prichmp
fuente

Respuestas:

153

El problema aquí es que en realidad no ha creado los contenedores. Tendrá que crear estos contenedores antes de ejecutarlos. En su docker-compose uplugar, puede usar el , que creará los contenedores y luego los iniciará.

O puede ejecutar docker-compose createpara crear los contenedores y luego ejecutar docker-compose startpara iniciarlos.

JesúsTinoco
fuente
4
¿Qué hace docker-compose build?
Prichmp
8
docker-compose buildcrea las imágenes de su archivo docker-compose.yml.
JesusTinoco
11
Tenga en cuenta que docker-compose createestá en desuso. Utilice el upcomando con en su --no-startlugar.
B12Toaster
24

La razón por la que vio el error es docker-compose starty docker-compose restartasume que los contenedores ya existen.

Si desea construir e iniciar contenedores, use

docker-compose up

Si solo desea construir los contenedores, use

docker-compose up --no-start

Posteriormente, docker-compose {start,restart,stop}debería funcionar como se esperaba.

Solía ​​haber un docker-compose createcomando, pero ahora está en desuso a favor de docker-compose up --no-start.

Philipp Claßen
fuente