8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

8
8
0

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
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?