~ $ 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を調べるコマンドは便利だったりします。