2017-07-11 3 views
0

J'essaie d'utiliser une image que j'ai extraite de la base de données docker. Cependant, j'ai besoin de données de l'hôte pour utiliser certains programmes chargés dans l'image. J'ai créé un récipient avec ceLe conteneur Docker ne fonctionne pas après la création avec le volume monté

sudo docker run --name="mdrap" -v "/home/ubuntu/profile/reads/SE:/usr/local/src/volume" sigenae/drap 

il semble que tout fonctionne et je commence le récipient

sudo docker start mdrap 

mais quand je vérifie les conteneurs en cours d'exécution, il n'y figure pas et si je tente de charger le conteneur dans/bin/bash il me dit que le conteneur ne fonctionne pas. Je suis un débutant avec docker et j'essaie seulement d'utiliser une image pour exécuter des programmes avec toutes les dépendances requises, que fais-je tort?

Répondre

0

docker start est seulement de démarrer un conteneur arrêté. Ce n'est pas nécessaire après un docker run. (mais plus après un docker **create**, comme dans the documentation)

Un conteneur est démarré tant que son processus principal est en cours d'exécution.
Dès que le processus principal s'arrête, le conteneur s'arrête.

Le procédé principal d'un récipient peut être soit:

  • la ENTRYPOINT si elles sont définies
  • la CMD si aucun ENTRYPOINT et aucun argument de ligne de commande
  • l'argument de ligne de commande

Dans votre cas, comme vous n'avez aucun argument de ligne de commande (après le nom de l'image sur la commande docker run) et l'image sur ly définit un CMD (= /bin/bash), votre conteneur tente de démarrer un /bin/bash.
Mais, comme vous ne lancez pas le récipient avec le --interactive/-i ni --tty/-t (encore une fois comme dans the documentation), votre processus comme rien d'interagir avec et arrête (idem pour chaque démarrage de ce conteneur).

Ainsi, votre solution est simplement de suivre the documentation:

docker create --name drap --privileged -v /home/ubuntu/profile/reads/SE:/usr/local/src/volume -i -t sigenae/drap /bin/bash 
docker start drap 
docker exec -i -t drap /bin/bash 

Ou encore plus simple:

docker run --name drap --privileged -v /home/ubuntu/profile/reads/SE:/usr/local/src/volume -i -t sigenae/drap /bin/bash 
+0

Merci Je suis un super débutant juste essayer d'utiliser un programme, mais cela a fonctionné totalement – bohawk