2016-10-30 14 views
2

Ich möchte mit SSH in meinem Docker Container verbinden. Dafür habe ich Bild mit dieser Dockerfile und diesen Befehl docker build -t test/toto .:Passwort für SSH-Verbindung in Docker Container definieren

FROM ubuntu:14.04.4 
MAINTAINER Darkomen <[email protected]> 

# Let the conatiner know that there is no tty 
ENV DEBIAN_FRONTEND noninteractive 

RUN sudo apt-get -y update 

RUN sudo apt-get -y install software-properties-common python-software-properties 
RUN sudo add-apt-repository main 
RUN sudo add-apt-repository universe 
RUN sudo add-apt-repository restricted 
RUN sudo add-apt-repository multiverse 

RUN sudo apt-get -y update 

#RUN sudo apt-get -y install linux-headers-$(uname -r) build-essential 
RUN sudo apt-get -y install linux-headers-generic build-essential 
RUN apt-get -y install zlib1g-dev libssl-dev libreadline-gplv2-dev 
RUN apt-get -y install curl unzip 
RUN apt-get -y install software-properties-common 
RUN apt-get -y install gnupg2 

# others tools 
RUN sudo apt-get -y install nano 
RUN sudo apt-get -y install vim 
RUN sudo apt-get -y install aptitude 
RUN sudo apt-get -y install git 
RUN sudo apt-get -y install openjdk-7-jdk 
RUN sudo apt-get -y install whois 
RUN sudo apt-get -y install dos2unix 

# SSH 
RUN apt-get -y install openssh-server 
RUN mkdir -p /var/run/sshd 
RUN echo 'root:screencast' |chpasswd 

EXPOSE 22 
CMD /usr/sbin/sshd -D 

nächsten Ich startete meine Container mit diesem Bild mit diesem Befehl: docker run test/toto -p 42000:22

Mein Behälter laufen perfekt und ich starten Sie diesen Befehl für treten in diese container: docker run -dt -p 42000:22 test/toto

Jetzt meine Docker-Maschine und Docker-Container (basierend auf meiner Dockerfile) ausführen. Ich kann sehen, dass, weil docker ps -a sagen mir, dass:

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS     NAMES 
a28ad08fd393  test/toto   "/bin/sh -c '/usr/sbi" 22 minutes ago  Up 22 minutes     0.0.0.0:42000->22/tcp admiring_feynman 

Denn in meinem Behälter verbindet ich diesen Befehl starten: ssh [email protected] -p 42000

Aber es sagen Sie mir, ein Passwort einzugeben. Ich versuche viel, aber nichts läuft. Was ich in meinem Prozess der Erstellung und Konfiguration Docker vergessen?

192.168.99.100 ist die IP-Rückkehr durch den docker-machine inspect Befehl

Ich versuchte auch root-Passwort in meinem Container zu ändern und ssh-Befehl Zugriff wiederholen. Aber nichts ändert sich. Ich kann keine Verbindung zum Container herstellen.

technische Informationen:

  • OS: Windows 7 Pro
  • Docker Version: 1.12.2 build bb80604
  • Docker System: Docker Toolbox (basierend auf VirtualBox)
  • VirtualBox-Version: 5.0.14r105127
+0

Hat 'Docker run' arbeiten? – Rao

+0

Nun, wahrscheinlich vergessen, Root-Passwort einzurichten? – Jakuje

+0

Mein Docker laufen, perfekt laufen. Ich habe bereits ein root-Passwort in Dockerfile eingerichtet, aber vielleicht hast du die beste Lösung ... – darkomen

Antwort

2

Sie müssen Root-Login für yo konfigurieren ur sshd:

Handbuch:

vi /etc/ssh/sshd_config 

ändern PermitRootLogin without-password zu:

PermitRootLogin yes 

Dann:

service ssh restart 

nun erneut versuchen. Wenn alles gut gegangen ist, müssen Sie Ihre Andockdatei ändern, um diese Änderung in den Build-Schritten vorzunehmen.

+0

'' 'service ssh restart''' erzeuge einen Exit vom Container und stoppe ihn. Ich kann diesen Trick nicht versuchen. – darkomen

+0

tun Sie es in Ihrer Docker-Datei dann, über Kopieranweisung, vor dem Starten von SSH-Dienst. –

0

Dockerfile Skript für erstellen und eine SSH-Verbindung in den Behälter ausgesetzt:

# SSH 
RUN apt-get -y install openssh-server 
RUN mkdir -p /var/run/sshd 

# authorize SSH connection with root account 
RUN sed -i '/^#/!s/PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config 
RUN sudo service ssh restart 

# change password root 
RUN echo "root:docker"|chpasswd 
Verwandte Themen