Comment obtenir une connexion ssh avec le panneau de conteneurs sur OSX(boot2docker)
- Je utiliser docker sur OSX avec boot2docker.
Je veux obtenir une connexion Ssh depuis mon terminal dans l'exécution d'un conteneur.
Mais je ne peux pas le faire 🙁
Je pense que c'est parce que Docker est exécuté dans une machine virtuelle.
OriginalL'auteur Valikos Ost | 2014-04-11
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs choses que vous devez faire pour activer ssh avec un conteneur exécutant sur une machine virtuelle:
sshd
dans votre conteneur (exemple).sshd
n'est pas là par défaut, car en général, conteneurs de lancer un seul processus, mais ils peuvent utiliser autant que vous le souhaitez.EXPOSE
un port dans le cadre de la création de l'image, généralement 22, de sorte que lorsque vous exécutez le conteneur, le démon se connecte à laEXPOSE
'd port à l'intérieur du conteneur et quelque chose peut être exposée à l'extérieur du conteneur.docker run -p 42222:22 ...
les cartes port 42222 sur la VM vers le port 22 dans le conteneur.VBoxManage modifyvm "boot2docker-vm" --natpf1 "containerssh,tcp,,42222,,42222"
Puis, à partir de votre hôte, vous devriez être en mesure de ssh sur le port 42222 sur l'hôte pour atteindre le conteneur du démon ssh.
Voici ce qui arrive lorsque j'effectue les étapes ci-dessus:
De sorte que montre ssh->localhost 42222->VM port 42222->container au port 22.
OriginalL'auteur Andy
Docker a ajouté le
docker exec
commande de menu fixe 1.3.0. Vous pouvez vous connecter à l'exécution d'un conteneur à l'aide de l'suivantes:Qui va se connecter à une invite bash sur le fonctionnement du conteneur.
Fonctionne également avec docker-composer comme
docker-compose run <container-name> /bin/bash
OriginalL'auteur user848337
Si vous voulez juste entrer dans la course conteneur, vous pouvez envisager d'utiliser
nsenter
. Voici un simple script bash (proposé par Chris Jones) que vous pouvez utiliser pour entrer dans un conteneur docker. Sauvegarder quelque part dans votre$PATH
comme docker et d'entréechmod +x
Ensuite, vous pouvez exécuter
docker-enter 89af3d
(ou quelle que soit la configuration que vous voulez entrer)OriginalL'auteur Michael_Scharf
Légèrement modifié variante de Michael réponse qui nécessite juste le conteneur dans lequel vous souhaitez entrer être nommé (NOM):
OriginalL'auteur Barrett Clark