2016-07-25 14 views
1

Ich habe folgendes Dockerfile für meinen Behälter:Docker SSH-Server-Verbindung Refused

FROM ubuntu:latest 
RUN apt-get upgrade 
RUN apt-get update 
RUN apt-get -y install openssh-server 
CMD tail -f /dev/null 

Allerdings, wenn ich bauen und führen Sie es, es sagt Verbindung abgelehnt. Ich habe fast alles versucht, was ich für Lösungen finden konnte, einschließlich "ufw allow", was nicht funktioniert, da es mir sagt, dass ich root sein muss (wie kann ich das für eine Dockerfile machen?).

Ich brauche den Behälter für den Zugriff auf genau diese Weise:

ssh <someUsername?>@containerIP 

PS: Ich weiß, dass es andere Möglichkeiten, um einen Docker Behälter zu verbinden, aber ich brauche SSH zu verwenden, so befestigen usw. nicht ist eine Option.

EDIT: Es scheint zu sein, weil sshd nicht läuft, weil es nicht angezeigt wird, wenn ich "ps -A" ausführen.

Antwort

1

Docker-Container isolieren eine Anwendung oder einen Befehl, in Ihrem Fall isolieren sie den Befehl tail -f /dev/null, der den Container laufen lässt, aber nichts Nützliches tut. Wenn Sie einen sshd-Server ausgeführt möchten, müssen Sie das als Vordergrund Befehl starten:

CMD ["/usr/sbin/sshd", "-D"] 

Es gibt durchaus ein paar Bilder, die bereits für diese auf Docker Hub gebaut, darunter https://hub.docker.com/r/trsouz/ssh/ und https://hub.docker.com/r/rastasheep/ubuntu-sshd/.

-1

In Ihrer Docker-Datei installieren Sie nur den openssh-Server und erwarten, dass er funktioniert. Damit ssh funktioniert, müssen Sie im Prinzip einen Benutzer hinzufügen, ein Passwort erstellen, sshd-Regeln schreiben und den Dienst verfügbar machen. Wenn Sie all dies tun, können Sie SSH zu Ihrem Andock-Container.

Hier ist die Referenz. https://docs.docker.com/engine/examples/running_ssh_service/

Hoffe, das wird helfen.