Après l'exécution d'une image Docker, comment puis-je obtenir de manière programmable l'identifiant afin que je puisse les commandes de script pour cette image? Je pense que l'ID que je veux s'appelle l'identifiant Par exemple, je commence le Image utilisant alors maintenant que je connais l'identifiant du conteneur est conteneur code> car c'est la liste dans la sortie de la commande Docker PS code>. docker exécuter code>, i Exécution de la commande docker ps code> pour obtenir "id" je veux et puis je peux exécuter docker journaux code> ou d'autres commandes . p> 1234567890 code>, je peux exécuter des commandes sur le conteneur. P> docker inspect --format='{{.Id}}' myImage
sha256:95e11.....
3 Réponses :
Si vous démarrez un conteneur détaché ( Si vous attribuez votre conteneur un nom, vous pouvez l'utiliser à la place de l'ID du conteneur: P> Docker Run -D ... code>), le client Docker émettra l'ID du conteneur sur stdout. Donc, vous pouvez faire quelque chose comme: $ CONTAINER_ID=$(docker container ps --filter ancestor=myImage -q)
$ docker exec $CONTAINER_ID somecommand
Aussi vous pouvez faire de cette manière
for container_id in $(docker ps --filter="name=$myImage" -q -a);do docker rm $container_id;done
Vous pouvez obtenir un identifiant de conteneur en filtrant qui créé à partir d'une image particulière. ancêtre code>: Conteneurs de filtrage qui partagent une image donnée comme ancêtre P> -q code>: sortie uniquement l'identifiant p> -f code>: pour Filtrage P> -L code>: Affiche la dernière p> P >
Exécution
Docker Inspect MyImage CODE> Vous donnera des informations sur la Image i>, pas le conteneur que vous avez commencé.Pourquoi n'attribuez-vous pas directement un nom à votre instance de conteneur ( Docs .Docker.com / Engine / Référence / Run / # Nom --- Nom )? Vous pourrez exécuter des commandes sur l'instance de conteneur par son nom.
@ Ass3Mbler, merci pour la suggestion. J'ai googlé et trouvé ce digitalOcean.com/communité / Tutoriels / ... qui a été utile aussi.
@Pats heureux ça a aidé! :)