Chaque fois que j'exécute
docker-compose start
docker-compose ps
Je vois mes conteneurs avec l'état "UP". Si je fais
docker-compose up -d
Je verrai plus verbeux mais il aura le même état. Y a-t-il une différence entre les deux commandes?
Chaque fois que j'exécute
docker-compose start
docker-compose ps
Je vois mes conteneurs avec l'état "UP". Si je fais
docker-compose up -d
Je verrai plus verbeux mais il aura le même état. Y a-t-il une différence entre les deux commandes?
Réponses:
docker-compose start
( https://docs.docker.com/compose/reference/start/ )
Démarre les conteneurs existants pour un service.
docker-compose up
( https://docs.docker.com/compose/reference/up/ )
Construit, (re) crée, démarre et s'attache à des conteneurs pour un service.
À moins qu'ils ne soient déjà en cours d'exécution, cette commande démarre également les services liés.
La
docker-compose up
commande agrège la sortie de chaque conteneur (essentiellement en cours d'exécutiondocker-compose logs -f
). Lorsque la commande se termine, tous les conteneurs sont arrêtés. L'exécutiondocker-compose up -d
démarre les conteneurs en arrière-plan et les laisse en cours d'exécution.S'il existe des conteneurs pour un service et que la configuration ou l'image du service a été modifiée après la création du conteneur,
docker-compose up
récupère les modifications en arrêtant et en recréant les conteneurs (en préservant les volumes montés). Pour empêcher Compose de prendre en compte les modifications, utilisez l'--no-recreate
indicateur.
Pour la référence CLI complète:
https://docs.docker.com/compose/reference/
Dans docker Foire aux questions, cela est expliqué très clairement:
Quelle est la différence entre up, run et start?
En règle générale, vous voulez
docker-compose up
. Utilisezup
pour démarrer ou redémarrer tous les services définis dans un fichierdocker-compose.yml
. Dans le mode «attaché» par défaut, vous voyez tous les journaux de tous les conteneurs. En mode «détaché» (-d
), Compose se ferme après le démarrage des conteneurs, mais les conteneurs continuent à s'exécuter en arrière-plan.La
docker-compose run
commande sert à exécuter des tâches «ponctuelles» ou «adhoc». Il nécessite le nom du service que vous souhaitez exécuter et démarre uniquement les conteneurs pour les services dont dépend le service en cours d'exécution. Permetrun
d'exécuter des tests ou d'effectuer une tâche administrative telle que la suppression ou l'ajout de données à un conteneur de volume de données. Larun
commande agit commedocker run -ti
si elle ouvre un terminal interactif au conteneur et renvoie un état de sortie correspondant à l'état de sortie du processus dans le conteneur.La
docker-compose start
commande n'est utile que pour redémarrer des conteneurs qui ont été précédemment créés, mais qui ont été arrêtés. Il ne crée jamais de nouveaux conteneurs.