web-dev-qa-db-de.com

Wie ssh in Docker-Maschine VirtualBox-Instanz?

docker-Maschine Version 0.2.0 Docker-Version 1.6.2

Ich benutze Docker-Maschine, um eine Maschine mit VirtualBox zu erstellen . Alles funktioniert gut, aber ich möchte in die Maschine selbst ssh und ich finde keine Anweisungen, wie dies zu tun ist. Ich kann mich mit dem SSH-Port verbinden:

ssh $(docker-machine ip dev)

Aber ich habe keine Ahnung, welchen Benutzernamen/Passwort/Identitätsdatei ich verwenden soll.

79
Roy Truelove

Sie können sich bei Docker-Computer-Hosts anmelden, indem Sie einfach ausführen

docker-machine ssh default

(Verwenden des "Standard" -Hosts hier)

Die Identitätsdateien sollten unter ~/.docker/machine/machines Gespeichert werden. Wenn Sie sich in einem Container anmelden möchten (im Gegensatz zum Host), verwenden Sie docker exec, Wie von Benutzer2915097 vorgeschlagen.

116
Adrian Mouat

wenn Sie es wirklich über ssh tun müssen, funktioniert dies mit Docker 1.8.2

init Docker:

eval "$(docker-machine env default)"

rufen Sie die IP von Ihrem Standard-Docker-Computer ab:

docker-machine ip default

dies gibt so etwas aus: 192.168.99.100

ssh [email protected]

passwort ist tcuser, aber Sie können auch die Identitätsdatei verwenden, siehe andere Antwort

65
timaschew

Endlich habe ich eine Antwort gefunden:

Ich bin unter Windows mit Docker Toolbox (Docker Machine).

Wenn ich docker-machine -D ssh default, Ich finde, dass die SSH-Parameter sein sollten:

Gastgeber: localhost
Port: 51701
Benutzer: Hafenarbeiter
Schlüssel: .docker\machine\machines\default\id_rsa

Wenn ich meine PuTTY/MobaXterm-Einstellungen an voila anpasse, kann ich SSH in den Container.

25

Für die Hacker gibt es hier ein Skript, das in die 'aktive' Docker-Maschine geschrieben wird. Auf diese Weise erhalten Sie auch die Werte für ssh_key, ssh_port und ssh_user, sodass zwischen localhost und VM beispielsweise rsync ausgeführt werden kann.

#!/bin/bash
docker_machine_name=$(docker-machine active)
docker_ssh_user=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHUser}})
docker_ssh_key=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHKeyPath}})
docker_ssh_port=$(docker-machine inspect $docker_machine_name --format={{.Driver.SSHPort}})

ssh -i $docker_ssh_key -p $docker_ssh_port [email protected]

Sie können das kopieren und Zeile für Zeile in Ihr Terminal einfügen, und es wird funktionieren. Oder machen Sie das Skript zu einer Funktion und geben Sie ihm den Namen als Argument.

9
robert

Wenn Sie aus irgendeinem Grund lieber den Befehl ssh als docker-machine ssh Verwenden möchten, können Sie dies tun

ssh `docker-machine ip machine_name` -ldocker -i ~/.docker/machine/machines/machine_name/id_rsa
5

Bei Mac OX befinden sich der Computer und seine Schlüssel hier (stellen Sie sicher, dass Sie die Schlüssel dort haben, etwa wie folgt:

~/project/dev/docker_notes za$ ls /Users/za/.docker/machine/machines/default/
.DS_Store        ca.pem           config.json      disk.vmdk        id_rsa.pub       server-key.pem
boot2docker.iso  cert.pem         default/         id_rsa           key.pem          server.pem

1) Liste der verfügbaren VMS.

> ~/project/dev/docker_notes za$ docker-machine ls
>     NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
>     default   -        virtualbox   Running   tcp://192.168.99.100:2376           v1.11.0

In meinem Fall ist der Name des Geräts voreingestellt. Also nur

~/project/dev/docker_notes za$ docker-machine ssh default


                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.11.0, build HEAD : 32ee7e9 - Wed Apr 13 20:06:49 UTC 2016
Docker version 1.11.0, build 4dc5990
[email protected]:~$ vi 
.ash_history  .ashrc        .docker/      .local/       .profile      .ssh/         log.log
[email protected]:~$ ls
log.log

Wie Sie sehen können, kann ich in Docker-Maschine/Instanz ssh.

[email protected]:~$ uname -a
Linux default 4.1.19-boot2docker #1 SMP Thu Apr 7 02:41:05 UTC 2016 x86_64 GNU/Linux

Sie können auch diesem> Howto - Docker folgen

2
zee