nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

Mac + DockerToolbox で ssh 可能な CentOS のイメージを作成する

DockerToolbox のインストール

http://docs.docker.com/mac/step_one/ の手順に従ってインストール

Docker Quickstart Terminal の実行

Dockerfile の作成

  • Docker 用のディレクトリを作成して Dockerfile の作成
$ mkdir -p /path/to/docker/centos-ssh
$ cd /path/to/docker/centos-ssh
FROM centos:6

RUN yum -y install initscripts MAKEDEV

RUN yum check

RUN yum -y update

RUN yum -y install openssh-server passwd

# 空パスワードの場合は以下をコメントアウト
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 /etc/init.d/sshd stop

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

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

EXPOSE 22
CMD /usr/sbin/sshd -D

イメージの作成

$ docker build -t centos-ssh .

コンテナの起動

$ docker run -p 20022:22 -d centos-ssh

ポートフォワーディングの設定

  • コンテナ起動時に -p オプションで、コンテナから docker-machine の間のポートフォワーディングの設定を行った
  • Mac の場合はさらに、docker-machine と Mac の間のポートフォワーディングの設定を行う必要がある

手順

  • アプリケーションから VirtualBox の起動
  • "default" を選択して "設定" ボタンを押下
  • "ネットワーク" を選択して "ポートフォワーディング" を押下
  • ポートフォワード設定の追加

ssh 接続実行

$ ssh -p 20022 root@127.0.0.1