コンテナOSにはUbuntuを使用している。
まずコンテナを立ち上げてコンソールに接続する
$ docker run --name コンテナ名 -i -t ubuntu /bin/bash
--nameでは適当なコンテナ名を設定するコンテナにSSHサーバ機能をインストールする
# apt-get install openssh-server
openssh-serverを使ってみた。接続元となる端末でSSH鍵を作成する
Windows8.1上でPuTTYを使用して作成した。鍵作成にはputtygen.exeを使用する。
"C:\Program Files (x86)\WinSCP\PuTTY"からputtygen.exeを起動する。
「generate」を押して鍵を作成し「公開鍵(public key)」と「秘密鍵(private key)」を保存する。
コンテナに作成した公開鍵(public key)を登録する
.sshディレクトリを作成し、authorized_keysファイルを作成し公開鍵の文字列を記載する
# mkdir ~/.ssh
# vi authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAn・・・・・・・・・・・・・・・・
ssh-rsa以降の文字列は公開鍵ファイルの文字列を記載する# vi authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAn・・・・・・・・・・・・・・・・
今回はrootユーザ向けの設定。
Ubuntuコンテナをイメージとして保存する
docker上でイメージ作成コマンドを実行する
$ docker commit コンテナ名 イメージ名
適当なイメージ名を設定する。(コンテナ名はこれまでの手順で作成したものを設定)作成したイメージを立ち上げる
$ docker run -d --name コンテナ名 -p XXXX:22 イメージ名 /usr/sbin/sshd -D
適当なコンテナ名を設定する。(イメージ名は上記の手順で作成したものを設定)XXXXには他で使用していない適当なポート番号を設定する。
立ち上げたコンテナにSSH接続する
PuTTY Configurationの「Session」でHost Name(or IP address)にDockerサーバのIPアドレスを指定する。Port番号は22から上記で設定したものに変更する。
「Conection」→「SSH」→「Auth」でPrivate key file for authenticationに秘密鍵ファイルを設定する。
「Open」をクリックするとコンテナにSSH接続できる。