web-dev-qa-db-fra.com

Réponse d'erreur du démon: le conteneur CONTAINER_NAME n'est pas en cours d'exécution

J'ai une image docker dajobe/hbase et elle a été construite à partir d'Ubuntu. J'ai créé un conteneur de cette image et l'ai nommé hb.

$ docker run -d --name hb dajobe/hbase
e1f68ff8b3b6c5e474426e2566f8c087d6a785fc5eeb58cd2aeb86176068651d

J'ai ensuite démarré le répertoire/bin/bash sur hb et vérifié la disponibilité de l'éditeur vi.

$ docker exec -it hb /bin/bash
root@e1f68ff8b3b6:/# vi
bash: vi: command not found

J'ai ensuite installé vi editor en utilisant apt-get

# apt-get install vim
Reading package lists...
DoneBuilding dependency tree
Reading state information... Done
.....
.....

Je voulais valider les modifications afin que l'éditeur v puisse persister.

$ docker commit hb dajobe/hbase
1be196188efc5a52562dc8ee1b63d0fd560ea163c49331c10dc435848d75ef64

puis, lorsque j’ai de nouveau lancé dajobe/hbase, il s’est automatiquement arrêté.

$ docker run -d --name hb dajobe/hbase
c3e7b9f48077ef854efc6f9bab5e85986e265c98de5423bece0000c973206c38

$ docker exec -it hb /bin/bash
FATA[0000] Error response from daemon: Container hb is not running

Pourquoi le conteneur ne fonctionne-t-il pas?

$ docker ps -a
CONTAINER ID        IMAGE              COMMAND          CREATED                   STATUS                 PORTS      NAMES
c3e7b9f48077 dajobe/hbase:latest "/opt/hbase-server"  11 secs ago         Exited (0) 8 secs ago                      hb

Pourquoi le statut est "Exited"? Avant de s'engager, ce n'était pas le cas, le statut était "Up".

7
Aaquib Khwaja

Je m'attendrais à ce que le statut soit Exited. Peut-être que l'image originale que vous utilisiez avait un ENTRYPOINT qui faisait en sorte que le conteneur continue à fonctionner pendant que vous l'exécutiez. Vous pouvez essayer ceci:

docker run -d --name hb dajobe/hbase sleep 60

Ensuite, essayez votre exec, pour les 60 prochaines secondes, vous vous connecterez avec votre Shell interactif. Après cela, vous recevrez à nouveau le même message.

Le -d transforme le conteneur en démon. Cependant, il faut que quelque chose soit fait, sinon cela se termine! Avez-vous essayé de faire la ligne de conduite avec le -it?

docker run -it --name hb dajobe/hbase bash

Vous y trouverez également une invite du shell, où vous pourrez effectuer les mises à jour de l’image.

-g

2
Greg