Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@hiraike32

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

More than 1 year has passed since last update.
~ $ 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を調べるコマンドは便利だったりします。

5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
hiraike32
Android Developer
dwango
Born in the net, Connected by the net.

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?