153 votes

Comment redémarrer un conteneur Docker arrêté

Je lance un docker à partir d'une image avec la commande suivante:

 $ docker run -d myimage /bin/bash -c "mycommand"
 

Lorsque "mycommand" est terminé, le conteneur est arrêté (je suppose qu'il est arrêté), mais il n'est pas supprimé, car je peux le voir avec cette commande:

 $ docker ps -a
 

Existe-t-il un moyen de restart ce conteneur avec les mêmes paramètres et de conserver les données générées par mycommand ?

204voto

lmtx Points 1246

Oui, lorsque la commande initiale termine son exécution, le conteneur s'arrête.

Vous pouvez démarrer un conteneur arrêté à l'aide de:

docker start container_name

Si vous souhaitez voir la sortie de votre commande, vous devez ajouter les options -ai :

docker start -ai container_name

PS. il y a un docker restart container_name mais qui est utilisé pour redémarrer un conteneur en cours d'exécution - je crois que ce n'est pas votre cas.

26voto

lmiguelvargasf Points 9693

Tout d'abord, $ docker ps -a montre tous les conteneurs (celles qui sont en cours d'exécution et l'arrêté proches), de sorte que c'est la raison pour laquelle vous ne voyez pas votre arrêté contenant figurant.

Deuxièmement, vous pouvez facilement commencer un arrêté conteneur en cours d'exécution:

$ docker start container_name

Une fois que le conteneur a été démarré, vous pouvez exécuter votre commande par:

$ docker exec -it container_name bash -c "mycommand"

Les trucs que vous créez dans votre conteneur restera à l'intérieur de votre conteneur aussi longtemps qu'il existe. Si vous souhaitez conserver les données même si votre récipient est retiré, vous pouvez utiliser un volume.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X