web-dev-qa-db-ja.com

openssh-serverがDockerコンテナーで起動しない

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

IPアドレス172.17.0.61のDockerコンテナにSSHで接続できません。

次のエラーが発生します。

$ 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が開始されないようです。

私は何をすべきか?

5
brg

コンテナとイメージ

RUNステートメントは、Dockerイメージをビルドするときにコマンドを実行するために使用されます。
ENTRYPOINTおよびCMDを使用すると、そのイメージを使用してコンテナーを起動したときに実行するものを定義できます。
それらの使用方法の説明については、 Dockerfileリファレンス を参照してください。

サービス

コンテナにはプリインストールされたinit-systemがないため、コンテナでservice ... startを使用することはできません。
CMDステートメントでプロセスをフォアグラウンドプロセスとして開始することを検討するか、PhusionやSupervisordなどのinitシステムを使用してください。

6
craeckie