2016-08-02 13 views
1

Ich muss mich in einer Bash-Konsole in einem Docker-Container anmelden, die auf einem Remote-Host ausgeführt wird.Wie ssh + bash in Docker Container in einem einzigen Befehl

Die folgenden Befehle funktionieren:

(local)$ ssh -i myKey [email protected] 
(remote)$ docker exec -it myContainer /bin/bash 

Bitte beachte, dass ich ohne Passwort-Authentifizierung mit SSH verwenden. Mein Szenario ist ein wenig komplizierter, einschließlich eines Skripts, um in einen einzigen Befehl zu gelangen (was tatsächlich auch die Dockercontainer-ID herausfinden würde), dies reicht aus, um das Problem zu zeigen. Wenn ich versuche, in einem einzigen Befehl auszuführen, erhalte ich folgende Fehlermeldung:

(local)$ ssh -i myKey [email protected] "docker exec -it myContainer /bin/bash" 
cannot enable tty mode on non tty input 

Wie kann ich diese SSH laufen und bekommen Vergangenheit den Fehler „nicht aktivieren tty“?

Antwort

3

Verwenden Sie die -t Option (zweimal) mit ssh:

ssh -tt -i myKey [email protected] docker exec -it myContainer /bin/bash 
+0

reine Magie. Es funktioniert, danke – herchu

1

Sie den Befehl verwenden können (von Ihrem PC) docker-machine damit Sie in der Lage sind, mit dem Docker-Server zu verbinden (wenn die api ausgesetzt ist) eine Verwaltung der docker wie Ihre lokale Umgebung (docker ps, docker Lauf etc etc) Dokumentation:

https://docs.docker.com/machine/