LoginSignup
8

More than 5 years have passed since last update.

Dockerのコンテナで"ssh: command not found"と表示されたときの対処法

Posted at
~ $ ssh
sh: ssh: not found

Dockerで動かしているプログラムから、他のサーバーで動いているプログラムにssh接続して操作したい、ということがあると思います。
そのときに、Dockerのコンテナにsshコマンドが無いと動かすことができないので、sshをインストールしましょう。

1 . DockerのOSを調べる

以下のコマンドをコンテナ内で実行して、そのコンテナのOSを調べます。

$ grep -H "" /etc/*version ; grep -H "" /etc/*release

軽量のAlpineを使用していれば以下のように出るはず。

/etc/alpine-release:3.4.6
/etc/os-release:NAME="Alpine Linux"

OSによって、sshのインストールの方法は異なるので、それぞれのOSに合わせてください。
ここでは、Alpine Linux, CentOS, Ubuntsuの場合のsshインストール方法を掲載します。

2 . 1 Alpine Linuxにsshをインストール

以下のコマンドを実行すれば、sshをインストールできます。

$ apk add openssh

ただ、毎回コマンドを実行するのは大変なので、Dockerfileに記載しておくことをお勧めします。

RUN apk add openssh

2 . 2 CentOSにsshをインストール

以下のコマンドを実行すれば、sshをインストールできます。

$ yum -y install openssh-server
$ yum -y install openssh-clients

同じくDockerfileに記載推奨です。

2 . 3 Ubuntsuにsshをインストール

以下のコマンドを実行すれば、sshをインストールできます。

$ apt-get install openssh-server

上に同じ。

これでHOMEディレクトリに.sshディレクトリが作成されて、sshコマンドが有効になっているはずです。
.sshディレクトリに必要なconfigファイルやpemファイルを格納して、sshを実行してください。

ちなみに、Dockerに限らずOSを調べたい時は多いので、OSを調べるコマンドは便利だったりします。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8