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 ça aura le même état. Y a-t-il une différence entre les deux commandes?
docker-compose start
( https://docs.docker.com/compose/reference/start/ )
Démarre les conteneurs existants pour un service.
docker-composer jusqu'à
( https://docs.docker.com/compose/reference/up/ )
Construit, (re) crée, démarre et 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 commande
docker-compose up
agrège la sortie de chaque conteneur (en exécutant essentiellementdocker-compose logs -f
). Lorsque la commande se ferme, tous les conteneurs sont arrêtés. Lancerdocker-compose up -d
lance les conteneurs en arrière-plan et les laisse fonctionner.S'il existe des conteneurs pour un service et si 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'indicateur--no-recreate
.
Pour la référence complète CLI:
https://docs.docker.com/compose/reference/
Dans docker Foire aux questions, cela s’explique très clairement:
Quelle est la différence entre up, run et start?
Généralement, vous voulez
docker-compose
up
. Utilisez up pour démarrer ou redémarrer tous les services définis dans undocker-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 de s'exécuter en arrière-plan.La commande d'exécution docker-compose est destinée à l'exécution de tâches "ponctuelles" ou "adhoc". Il nécessite le nom du service que vous souhaitez exécuter et ne démarre que les conteneurs des services dont dépend le service en cours d'exécution. Utilisez run pour exécuter des tests ou effectuer une tâche administrative telle que la suppression ou l'ajout de données à un conteneur de volumes de données. La commande run agit comme docker run -ti dans le sens où elle ouvre un terminal interactif au conteneur et renvoie un statut de sortie correspondant au statut de sortie du processus dans le conteneur.
La commande docker-compose start est utile uniquement pour redémarrer les conteneurs précédemment créés, mais arrêtés. Il ne crée jamais de nouveaux conteneurs.