Docker de SSH

Docker に興味が出たので入れてみました。
HostOS は VertualBox CentOS 6.6

Dockerは以下のページを参考にインストール。
http://qiita.com/zwirky/items/991f61a231f4e198a320

# rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
# yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum -y install docker-io

インストールできたようなので起動。

# service docker start
# chkconfig docker on

これだけで準備完了。簡単。

とりあえず外部からSSH接続できるDockerイメージを作ってみる。
ググってみると DockerFile とやらを作るのがいいみたいだなっと。
とりあえず以下のページを参考にやってみる
http://qiita.com/comutt/items/1251cc19885947cd6d3d

そのままでは動かなかったので、ちょっと修正しました

FROM centos
RUN yum -y install initscripts MAKEDEV
# うまく動かないのでコメントアウト
#RUN yum check-update
RUN yum -y update

# openssh-serverではうまく入らなかった。。。
RUN yum -y install openssh-server*

# 空パスワードの場合は以下をコメントアウト
# RUN sed -ri 's/^#PermitEmptyPasswords no/PermitEmptyPasswords yes/' /etc/ssh/sshd_config

RUN sed -ri 's/^#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/^UsePAM yes/UsePAM no/' /etc/ssh/sshd_config

RUN /etc/init.d/sshd start

# 空パスワードの場合は以下をコメントアウト
# RUN passwd -d root

# 任意のパスワードの場合は以下をコメントアウト & パスワードを書き換える
RUN echo 'root:root' | chpasswd

EXPOSE 22

CMD /sbin/init

DockerFile を作ったディレクトリに移動して
イメージビルド実行!

# docker build -t ssh-enabled .

うまくできたようなので コンテナを起動してみます。

# docker run -i -p 22 -t ssh-enabled /usr/sbin/sshd -D
# docker ps
CONTAINER ID        IMAGE                COMMAND               CREATED             STATUS              PORTS                   NAMES
cfe03f891261        ssh-enabled:latest   "/usr/sbin/sshd -D"   32 seconds ago      Up 32 seconds       0.0.0.0:49154->22/tcp   mad_hoover

22番 portは HostOS の 49154 に割り当てられたようです。
よーし、パパログインしちゃうぞー

できた!!
すんごいな。これ。。。