2016-10-07 1 views
0

Zum Beispiel, wenn ich ein Docker-Image auf Debian-Basis erstellen, möchte ich SSH-Dienst installieren und dann den SSH-Benutzer und das Kennwort für eine Docker-Datei festlegen. Wenn ich es nicht machen will, nachdem ich es ausgeführt habe, obwohl es Sinn machen kann. Danke für Ihre Hilfe!Wie man die Interaktion innerhalb und außerhalb eines Docker-Containers realisiert

... 
 

 
RUN \ 
 
    apt-get update && \ 
 
    # install ssh service 
 
    apt-get install openssh-server -y && \ 
 
    mkdir -p /var/run/sshd && \ 
 
    useradd sshuser && \ 
 
    passwd sshuser && \ 
 

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

 
...

+0

Können Sie bitte erklären, was Sie zu tun versuchen? Möchten Sie ein Docker-Image mit installiertem sshd erstellen und ein vordefiniertes Passwort haben? – ffledgling

+0

@ffledgling Ja, damit kann ich den ** sshuser ** und sein Passwort verwenden, um sich außerhalb des Containers einzuloggen. – wizChen

Antwort

1

Ändern Sie Ihre Docker-Datei dies genau das zu tun, was Sie ursprünglich vorhatten.

Beachten Sie, dass dies bedeutet, dass das generierte Kennwort für immer in Ihrer Andockdatei codiert und für jeden sichtbar ist, der es anzeigt. Sie können anstelle eines Klartextkennworts eine verschlüsselte SHA angeben, aber das ist immer noch keine gute Idee.

Weitere Informationen finden Sie unter man useradd.


Als Anregung/beiseite, ein besserer Weg, dies in der Docker Welt zu tun, ist nicht an all sshd im Innern des Behälters zu installieren. Verwenden Sie stattdessen:

$ docker exec -i -t <name of the running container> -- /bin/bash 

Dies setzt voraus, dass der Container bereits ausgeführt wird. Docker exec benötigt keinen Benutzernamen oder kein Passwort für den Zugriff auf den Container.

+0

Ja, das weiß ich. Aber ich kann mein ** sshuser ** Passwort über die Variable setzen, wenn ich es selbst das Konto des SSH-Benutzers ausführe. – wizChen

+0

Hallo, ich habe deinen Vorschlag ausprobiert und es hat nicht funktioniert. Ich gehe in den laufenden Container, um einen anderen Benutzer unter Verwendung '' useradd Test -m -p Mypassword '' und finden, dass es auch nicht funktioniert. – wizChen

+0

@wizChen müssen Sie ein wenig klarer darüber sein, was Sie tun wollen und was Sie wollen. Was meinst du * es hat nicht funktioniert *? Welche Befehle haben Sie ausprobiert und welche Fehlermeldungen haben Sie erhalten? Kannst du sie einfügen/sie zu deiner Frage hinzufügen? – ffledgling

Verwandte Themen