2016-10-30 14 views
2

SSHと私のドッカーコンテナに接続したいと思います。そのために私はこのDockerfileと、このコマンドdocker build -t test/toto .で画像を作成しました:パスワードがドッカーコンテナへのssh接続のために定義されています

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 

次の私は、このコマンドを使って、このイメージで私のコンテナを開始しました:docker run test/toto -p 42000:22

私のコンテナが完全に実行され、これに入るために私は、このコマンドを起動しますコンテナ:docker run -dt -p 42000:22 test/toto

私のドッカーマシンとドッキング用のコンテナ(ドッカーファイルに基づく)が実行されます。

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 

を私の容器に接続するために、私は、このコマンドを起動します:ssh [email protected] -p 42000

をしかし、それはパスワードを入力するように教えてdocker ps -aは私にそれを言うので、私はあることを表示することができます。私はたくさんのことをしようとするが、何も動かない。作成と設定のドッカーの私のプロセスで私が忘れるのは何ですか?

192.168.99.100私も自分のコンテナと繰り返しsshコマンドアクセスにrootのパスワードを変更しようとしたdocker-machine inspectコマンド

によるIPリターンです。しかし何も変わりません。コンテナに接続できません。

技術情報:

  • OS:Windows 7のプロ
  • ドッカーバージョン:1.12.2ビルドbb80604
  • ドッカーシステム:(VirtualBoxのに基づいて)ドッキングウィンドウのツールボックス
  • VirtualBoxのバージョン: 5.0.14r105127
+0

は 'ドッカrun'仕事をしていますか? – Rao

+0

さて、おそらく 'root'パスワードを設定するのを忘れましたか? – Jakuje

+0

私のドッカーが走り、完璧に走ります。私はすでにDockerfileにrootパスワードを設定していますが、おそらくもっと良い解決策があります。 – darkomen

答えて

2

yoのrootログインを設定する必要がありますウルSSHD:

マニュアル:

vi /etc/ssh/sshd_config 

変更PermitRootLogin without-passwordへ:次に

PermitRootLogin yes 

service ssh restart 

今すぐ再試行してください。すべてがうまくいったら、ビルドステップでこの変更を行うためにドッカーファイルを変更する必要があります。

+0

'' '' 'service ssh restart'''はコンテナからの出口を生成して停止します。私はこのトリックを試すことはできません。 – darkomen

+0

sockサービスを開始する前に、dockerファイルでコピー指示をしてください。 –

0

Dockerfile容器にSSH接続を作成し、公開するためのスクリプト:

# 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 
関連する問題