2

私は奇妙な問題を抱えています。

IP アドレスを持つ docker コンテナーに ssh できません172.17.0.61

次のエラーが表示されます:

$ ssh 172.17.0.61
ssh: connect to host 172.17.0.61 port 22: Connection refused

私にはインストール手順Dockerfileが含まれています:openssh-server

RUN apt-get -y install curl runit openssh-server

また、ssh を開始する手順も実行します。

RUN service ssh start

問題は何ですか?

サービスを使用してコンテナに入り、サービスnsenterを開始するとssh、sshできます。しかし、コンテナの作成中ssh-serverは開始されないようです。

私は何をすべきか?

4

3 に答える 3

10

Dockerfile をビルドするときは、イメージを作成します。ただし、既に実行中の ssh デーモンやその他の実行中のサービスを使用してイメージを作成することはできません。まず、イメージから実行中のコンテナーを作成すると、内部でサービスを開始できます。たとえば、開始命令を docker run コマンドに追加します。

sudo docker run -d mysshserver service ssh start

CMDを使用して、docker イメージのデフォルト コマンドを定義できます。Dockerfile の例を次に示します。

FROM ubuntu:14.04.1
MAINTAINER Thomas Steinbach
EXPOSE 22
RUN apt-get install -y openssh-server
CMD service ssh start && while true; do sleep 3000; done

次の 2 つのコマンドを使用して、run this イメージをビルドできます。

sudo docker build -t sshtest .
sudo docker run -d -P --name ssht sshtest

これで、ssh 経由でこのコンテナーに接続できます。Dockerfile の例では、ユーザーもログインも作成されていないことに注意してください。このイメージは単なる例であり、ssh 接続を開始することはできますが、ログインすることはできません。

于 2015-01-09T14:59:20.013 に答える