Docker-Compose-Start "FEHLER: Keine Container zum Starten"

96

Ich versuche, Docker Compose (mit Docker Machine unter Windows) zu verwenden, um eine Gruppe von Docker-Containern zu starten.

Meine 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 buildläuft erfolgreich. Wenn ich laufe, docker-compose startbekomme ich folgende Ausgabe:

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

Ich habe bestätigt, dass die Docker-Container nicht ausgeführt werden. Wie kann ich meine Container starten lassen?

Prichmp
quelle

Antworten:

148

Das Problem hierbei ist, dass Sie die Container noch nicht erstellt haben. Sie müssen diese Container erstellen, bevor Sie sie ausführen können. Sie können docker-compose upstattdessen das verwenden, um die Container zu erstellen und sie dann zu starten.

Oder du könntest rennen docker-compose create , um die Container zu erstellen, und dann ausführen docker-compose start, um sie zu starten.

JesusTinoco
quelle
4
Was macht docker-compose builddas
Prichmp
8
docker-compose buildErstellt die Bilder aus Ihrer Datei docker-compose.yml.
JesusTinoco
8
Beachten Sie, dass dies docker-compose createveraltet ist. Verwenden Sie stattdessen den upBefehl mit --no-start.
B12Toaster
21

Der Grund, warum Sie den Fehler gesehen haben, ist der, docker-compose startund docker-compose restartnehmen Sie an, dass die Container bereits vorhanden sind.

Wenn Sie Container erstellen und starten möchten, verwenden Sie

docker-compose up

Wenn Sie nur Container erstellen möchten, verwenden Sie

docker-compose up --no-start

Danach, docker-compose {start,restart,stop} sollte wie erwartet funktionieren.

Dort früher von einem docker-compose createBefehl, aber es ist nicht veraltet zugunsten von docker-compose up --no-start.

Philipp Claßen
quelle