2016-11-25 3 views
1

Ich habe einen Ubuntu-Rechner, der einen Andock-Container hostet. und im Docker-Container bin ich ein Web-Service, der das Passwort des Benutzers mit dem/etc/password des Docker-Host validieren muss.Installieren von SSH in den Docker-Containern

meine Ansicht ist, ssh in Docker Host aus dem Docker-Container. so, wenn ich Befehl ssh im Docker-Container ausführen seine sagen ssh nicht gefunden. Also, im Grunde ist ssh nicht im Container installiert. Wie kann ich ssh im Container installieren. gibt es eine Möglichkeit, dieses Szenario zu erreichen ?.

Antwort

1

Nun, als Teil der Image-Datei müssen Sie einfach OpenSSH-Server installieren:

sudo apt-get install openssh-server 

Das Problem ist dann, dass traditionell ein laufender Docker Behälter mit einem einzigen Befehl wird nur ausgeführt. Sie können dieses Problem umgehen, indem Sie etwas wie Supervisord verwenden. Es gibt ein Beispiel in den Docker docs: https://docs.docker.com/engine/admin/using_supervisord/

Ihre dockerfile könnte wie folgt aussehen:

FROM ubuntu:16.04 
MAINTAINER [email protected] 

RUN apt-get update && apt-get install -y openssh-server apache2 supervisor 
RUN mkdir -p /var/lock/apache2 /var/run/apache2 /var/run/sshd /var/log/supervisor 

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf 

EXPOSE 22 80 
CMD ["/usr/bin/supervisord"] 

Ihre supervisord.conf könnte wie folgt aussehen:

[supervisord] 
nodaemon=true 

[program:sshd] 
command=/usr/sbin/sshd -D 

[program:apache2] 
command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND" 
Verwandte Themen