970 votes

Comment obtenir bash ou ssh dans un conteneur en cours d'exécution en mode arrière-plan ?

Je veux m'introduire par ssh ou bash dans un conteneur docker en cours d'exécution. Veuillez voir l'exemple :

$ sudo docker run -d webserver
webserver is clean image from ubuntu:14.04
$ sudo docker ps
CONTAINER ID  IMAGE            COMMAND    CREATED STATUS  PORTS          NAMES
665b4a1e17b6  webserver:latest /bin/bash  ...     ...     22/tcp, 80/tcp loving_heisenberg 

Maintenant, je veux obtenir quelque chose comme ceci (aller dans le conteneur en cours d'exécution) :

$ sudo docker run -t -i webserver (ou peut-être 665b4a1e17b6 à la place)
$ root@665b4a1e17b6:/#

Cependant, lorsque j'exécute la ligne ci-dessus, j'obtiens un nouveau CONTAINER ID :

$ root@42f1e37bd0e5:/#

J'ai utilisé Vagrant et j'aimerais obtenir un comportement similaire à celui de vagrant ssh .

2voto

Kishan B Points 121
docker run -it openjdk:8

Cela fonctionne :-)

2voto

Soorena Points 181

GOINSIDE

installer goinside outil de ligne de commande avec :

sudo npm install -g goinside

et aller à l'intérieur d'un conteneur docker avec un terminal de taille appropriée avec :

goinside docker_container_name

pour plus de détails, consultez este dehors.

1voto

Agustí Sánchez Points 141

Pour bash dans un conteneur en cours d'exécution, tapez ceci :

docker exec -t -i container_name /bin/bash

0voto

Nek Points 211

Pour information. Si vous devez vous connecter dans un simple conteneur qui n'est pas un démon, vous devez utiliser les commandes suivantes :

docker start {id}
docker attach {id}

-1voto

David Dehghan Points 99

Si le conteneur est arrêté comme par exemple un conteneur de données uniquement, une bonne solution est d'exécuter un conteneur jetable chaque fois que vous voulez vous attacher au conteneur de données. Dans ce cas, le conteneur de données lui-même pourrait être entièrement vide, car le conteneur temporaire aurait les outils du système d'exploitation.

$ docker run --rm --volumes-from mydata -it ubuntu bash
root@645045d3cc87:/# ls /mydata
root@645045d3cc87:/# touch /mydata/foo
root@645045d3cc87:/# exit
exit

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X