J'ai configuré un conteneur Docker pour mon application de nœud et l'ai exécuté en utilisant
docker run -p 4500:4500 my_node_app
Il a lancé pm2 en mode sans démon. CTRL + C et exit ne fonctionnent pas. J'ai essayé d'arrêter docker my_node_app dans une autre fenêtre de terminal, mais en vain. Appréciez toute aide.
Vous pourrez voir les conteneurs Docker en cours d'exécution à l'aide de la commande ci-dessous.
docker ps
Copiez ensuite l'ID CONTAINER du conteneur en cours d'exécution et exécutez la commande suivante
docker stop <container_id>
Veuillez remplacer par une valeur réelle.
Vous pouvez essayer ceci, un script assez simple
docker container kill $(docker ps | grep "image_name" | awk '{print $1}')
Expliqué
Liste des conteneurs sous forme de tableau
docker ps
Résultat
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
763e1a00808e 7bb2586065cd "docker-entrypoint.s…" 2 months ago Up 2 weeks 3306/tcp, 33060/tcp mysql_1
763e1a00999b 7bb2586065cd "docker-entrypoint.s…" 1 months ago Up 2 weeks 3307/tcp, 33061/tcp mysql_2
Isolez votre conteneur
grep "mysql_1"
Résultat
763e1a00808e 7bb2586065cd "docker-entrypoint.s…" 2 months ago Up 2 weeks 3306/tcp, 33060/tcp mysql_1
Isoler la première valeur de tabulation qui est l'ID du conteneur
awk '{print $1}'
Résultat
763e1a00808e
Donc, en conclusion, cela isolera et enverra à la commande kill or stop l'ID de conteneur correspondant au nom de l'image
Faire docker container ls
pour trouver le nom du conteneur si vous ne le connaissez pas déjà, puis docker kill container_name
.
Source: documentation Docker