wake-up-neo.net

Wie stelle ich eine SSH-Verbindung zum boot2docker-Host vm her, den der Vagrant 1.6-Docker-Anbieter eingerichtet hat?

Ich bin auf OSX und möchte in der Lage sein, SSH in den Host-VM zu integrieren, um:

  1. Erhalten Sie Zugriff auf eine native Docker-Umgebung. Dies erleichtert das Verständnis und das Debuggen von Portweiterleitungsproblemen.
  2. Vagrant rsync scheint eine Menge nicht verwendeter synchronisierter Verzeichnisse zu hinterlassen, die Speicherplatz verbrauchen, den ich wiederherstellen möchte.

Bei dieser Frage geht es nicht darum, in die Docker-Container zu gelangen, die der Vagrant-Anbieter erstellt, sondern in den zwischengeschalteten boot2docker-Host, den Vagrant erstellt.

Ich weiß, dass eine Problemumgehung darin besteht, den standardmäßigen boot2docker nicht als Host-VM zu verwenden (wie in der Antwort hier erklärt), aber darum geht es in dieser Frage nicht.

35
Motin

Vagrants boot2docker behält den ssh-Benutzernamen und das Passwort von boot2docker bei.

SSH in VM

$ boot2docker ssh

Boot2Docker meldet sich automatisch mit dem generierten SSH-Schlüssel an. Wenn Sie jedoch manuell eine SSH-Verbindung zum Computer herstellen möchten (oder keine mit boot2docker Verwaltete VM verwenden), lauten die Anmeldeinformationen wie folgt:

user: docker
pass: tcuser

https://github.com/boot2docker/boot2docker#ssh-into-vm

Der Port wird standardmäßig vom lokalen Port 2022 Weitergeleitet. Sie können dies überprüfen:

$ VBoxManage list vms | grep docker
"docker-Host_default_1234567890000_1234" {3d66ecf6-4539-47ca-afd2-66f953cd9a3e}
$ VBoxManage showvminfo docker-Host_default_1234567890000_1234 | grep ssh
NIC 1 Rule(1):   name = ssh, protocol = tcp, Host ip = 127.0.0.1, Host port = 2022, guest ip = , guest port = 22

Und dann einloggen:

$ ssh [email protected] -p 2022
[email protected]'s password: tcuser
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
boot2docker: 0.8.0
[email protected]:~$ 
100
David256

Okt. 2015: Boot2docker wird zugunsten von Docker-Computer nicht mehr empfohlen. Einloggen:

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default   *        virtualbox   Running   tcp://192.168.99.100:2376   

$ docker-machine ssh default
15
Jim Soho

Sie können mit vagrant ssh docker-Host-id In docker Host sshen, aber zuerst müssen Sie die docker-Host-ID kennen.
Mit dem Befehl vagrant global-status Können Sie eine Liste aller aktiven Vagrant-Umgebungen abrufen.
Um die Docker-Host-ID zu erhalten, können Sie mit grep filtern:

vagrant global-status | grep docker-Host

sie erhalten eine Ausgabe ähnlich der folgenden:

68f58d0  default  virtualbox running   /Users/yourUser/.vagrant.d/data/docker-Host

kopieren Sie die erste Spalten-ID und dann ssh in docker-Host:

vagrant ssh 68f58d0

vagabundierende globale Statusdokumente

11
alfonsodev

Sie können auch mit boot2docker 's ssh Funktion und mache es "manuell" so:

$ ssh \
-i $HOME/.ssh/id_boot2docker \
-p $(boot2docker config 2>&1 | awk '/SSHPort/ {print $3}') \
[email protected]

Die Argumente zu -p ist normalerweise Port 2022, aber oben wird gezeigt, wie Sie dies programmgesteuert ermitteln können, wenn Sie dies möchten.

7
slm

Sie können SSH direkt verwenden:

ssh [email protected]$(boot2docker ip)

(Passwort: tcuser, siehe https://github.com/boot2docker/boot2docker#ssh-into-vm )


Außerdem können Sie Ihren öffentlichen Schlüssel kopieren und auf dem boot2docker-Computer einfügen, sodass Sie das Kennwort nicht jedes Mal eingeben müssen:

cat ~/.ssh/id_rsa.pub | ssh [email protected]$(boot2docker ip) 'cat - >> ~/.ssh/authorized_keys; chmod 600 ~/.ssh/authorized_keys'
2
Vojtech Vitek

Für vagabundierende Host-Rechner mit vagabundierendem Passwort:

ssh -p 2222 [email protected]

Ansonsten mit tcuser Passwort:

ssh -p 2222 [email protected]

Hier gibt weitere Informationen darüber, warum dies funktioniert.

2