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.
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.
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
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.
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.
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
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