はじめに
- 引き続き、オリジナルの
Debian
コンテナイメージを扱う - ホストからコンテナイメージに
ssh
でアクセスしてみる - ドキュメントを上からなぞるだけで出来たけどメモ
参考
手順
最終的には以下のようなイメージの構成となる。
コンテナイメージの作成
引き続き、こちらのイメージを使う。
起動
docker run -i -t inokappa/squeeze /bin/bash
sshd の設定と root パスワードの設定
起動したコンテナにて以下のように openssh-server
をインストールしたりする。
apt-get install openssh-server mkdir /var/run/sshd /usr/sbin/sshd passwd root exit
/var/run
以下にディレクトリを作成したりしなければならなかったり、そもそも init.d
から起動出来ないので注意する。
コミット
sshd
の設定と root
パスワードの設定を行ったら一旦、コンテナイメージから exit
して、コンテナイメージの ID
を確認する。
docker ps -a
コミットする。
docker commit ${ID} inokappa/squeeze-sshd
sshd のコンテナイメージを起動
コミットしたイメージで sshd
を起動する。
docker run -d -p 22 inokappa/squeeze-ssh /usr/sbin/sshd -D
-d
は Detached mode
でバックグラウンドで起動させるオプション。また、-p
は Expose a container's port to the host (use 'docker port' to see the actual mapping)
とあるので、コンテナで晒すポート番号を指定する。
ポート番号を確認
コンテナで晒しているポート番号がホスト側で何番のポートにマッピングされるポート番号を確認する。
docker port ${ID} 22
出力されたポート番号を控えておく。このポートがコンテナイメージの 22
番ポートにフォワードされる。 尚、ポート番号は 49153
番以上が利用される。
アクセスしてみる
ホスト側で docker0
のインターフェースに設定された IP を確認し、以下のようにアクセスする。
ssh root@xxx.xxx.xxx.xxx -p 49153
実際にやってみて
- 構えていたよりは簡単に出来たけど、若干、面倒
- 細々とコミットすることでオペミスっても簡単に戻すことが出来るのは嬉しい