docker-compose start "ERREUR: aucun conteneur à démarrer"

97

J'essaie d'utiliser Docker Compose (avec Docker Machine sous Windows) pour lancer un groupe de conteneurs Docker.

Mon 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 builds'exécute avec succès. Quand je cours, docker-compose startj'obtiens le résultat suivant:

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

J'ai confirmé que les conteneurs Docker ne fonctionnaient pas. Comment démarrer mes conteneurs?

Prichmp
la source

Réponses:

149

Le problème ici est que vous n'avez pas réellement créé les conteneurs. Vous devrez créer ces conteneurs avant de les exécuter. Vous pouvez utiliser le à la docker-compose upplace, qui créera les conteneurs puis les démarrera.

Ou vous pouvez exécuter docker-compose createpour créer les conteneurs, puis exécuter le docker-compose startpour les démarrer.

JésusTinoco
la source
4
Que fait docker-compose build-on?
Prichmp
8
docker-compose buildcrée les images à partir de votre fichier docker-compose.yml.
JesusTinoco
10
Notez que docker-compose createc'est obsolète. Utilisez plutôt la upcommande avec --no-start.
B12Toaster
23

La raison pour laquelle vous avez vu l'erreur est que docker-compose startet docker-compose restartsupposez que les conteneurs existent déjà.

Si vous souhaitez créer et démarrer des conteneurs, utilisez

docker-compose up

Si vous souhaitez uniquement créer les conteneurs, utilisez

docker-compose up --no-start

Ensuite, docker-compose {start,restart,stop}devrait fonctionner comme prévu.

Il y avait autrefois une docker-compose createcommande, mais elle est désormais obsolète au profit de docker-compose up --no-start.

Philipp Claßen
la source