docker
et docker-compose
semblent interagir avec le même fichier docker, quelle est la différence entre les deux outils?
La docker
cli est utilisée lors de la gestion de conteneurs individuels sur un moteur de menu fixe. C'est la ligne de commande du client pour accéder à l'api du démon docker.
Le docker-compose
cli peut être utilisé pour gérer une application multi-conteneur. Il déplace également de nombreuses options que vous saisiriez sur le fichier docker run
cli dans le fichier docker-compose.yml
pour une réutilisation plus facile. Il fonctionne comme un "script" frontal au-dessus de la même API de dockeur que celle utilisée par docker
, de sorte que vous puissiez faire tout ce que docker-compose
fait avec les commandes docker
et beaucoup de scripts Shell. Voir cette documentation sur docker-compose pour plus de détails.
Mise à jour pour le mode Swarm
Depuis que cette réponse a été publiée, Docker a ajouté une deuxième utilisation des fichiers docker-compose.yml. En commençant par version 3 format yml et docker 1.13, vous pouvez utiliser yml avec docker-compose et définir une pile en mode swarm de docker. Pour ce faire, vous devez utiliser docker stack deploy -c docker-compose.yml $stack_name
au lieu de docker-compose up
, puis gérer la pile avec les commandes docker
au lieu de docker-compose
. Le mappage est un un pour un entre les deux utilisations:
Pour plus de détails sur le mode essaim, voir documentation du mode essaim de docker .
docker
gère les conteneurs individuels
docker-compose
gère plusieurs applications de conteneur
L'utilisation de docker-compose nécessite 3 étapes:
docker-compose up
pour démarrer et exécuter l'applicationVous trouverez ci-dessous un exemple de [docker-compose.yml tiré de docker docs :
_services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
_