Vagrant で Windows 上の VirtualBox に CoreOS のインスタンスを作成し、 Ubuntu 14.04 LTS のコンテナを作成し、 SSH で接続可能にする #vagrant #coreos #docker

# Vagrant で Windows 上の VirtualBox に CoreOS のインスタンスを作成し、 Ubuntu 14.04 LTS のコンテナを作成し、 SSH で接続可能にする #vagrant #coreos #docker
## <i class="fa fa-cubes" style="font-size:1em;"></i> 概要
Vagrant で Windows 上の VirtualBox に CoreOS のインスタンスを作成し、 Ubuntu 14.04 LTS のコンテナを作成し、 SSH で接続可能にします
## <i class="fa fa-cube" style="font-size:1em;"></i> 前提
* Vagrant のインストール
* Cygwin のインストール
* Virtual Box のインストール
* Vagrant dotenv plugin をインストールしておく
    * 環境変数の設定に利用します

## <i class="fa fa-files-o" style="font-size:1em;"></i> 手順
### <i class="fa fa-cloud-download" style="font-size:1em;"></i> CoreOS の Vagrantfile を取得する

詳しくは、下記リンク先参照
<i class="fa fa-github-square" style="font-size:1em;"></i> [CoreOS Vagrant GitHub](https://github.com/rutan/itamae-plugin-recipe-rtn_rbenv)

~~~bash
$ git clone https://github.com/coreos/coreos-vagrant/
~~~

### <i class="fa fa-cloud" style="font-size:1em;"></i> CoreOS インスタンスを作成
Vagrant up でインスタンスを作成します

~~~
$ cd coreos-vagrant
$ vagrant up
~~~

### <i class="fa fa-cloud" style="font-size:1em;"></i> CoreOS に ssh 接続する

~~~bash
$ vagrant ssh
Last login: Fri Dec  5 04:58:52 2014 from 10.0.2.2
CoreOS (alpha)
core@core-01 ~ $ ls
core@core-01 ~ $ docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.2
Git commit (client): 50b8feb
OS/Arch (client): linux/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.2
Git commit (server): 50b8feb
~~~

* ssh で接続してもいい

~~~bash
ssh core@172.17.8.101
~~~

### 公開鍵を設定する

~~~
core@core-01 ~ $cd ~/.ssh
core@core-01 ~ $cat << EOF >> authorized_keys
your key
EOF
~~~

### <i class="fa fa-gear" style="font-size:1em;"></i> Dockfile の作成

~~~bash
core@core-01 ~ $cat << EOF > Dockerfile
FROM ubuntu:trusty
MAINTAINER your_name <some@mail_address.hogehoge.co.jp>
RUN apt-get update
RUN apt-get install -y openssh-server
RUN useradd -m -s /bin/bash core
RUN mkdir -p /home/core/.ssh; chown core:core /home/core/.ssh; chmod 700 /home/core/.ssh
ADD .ssh/authorized_keys /home/core/.ssh/
RUN chown core /home/core/.ssh/authorized_keys; chmod 600 /home/core/.ssh/authorized_keys
RUN chown -R core:core /home/core/.ssh
RUN echo "core    ALL=(ALL)       NOPASSWD: ALL" >> /etc/sudoers.d/core
RUN /etc/init.d/ssh start
RUN /etc/init.d/ssh stop
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
EOF
~~~

### <i class="fa fa-gavel" style="font-size:1em;"></i> イメージの作成

~~~bash
core@core-01 ~ $ sudo docker build -t="sample/ubuntu:trusty" .
~~~

### <i class="fa fa-search-plus" style="font-size:1em;"></i> イメージの確認

~~~bash
core@core-01 ~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
sample/ubuntu       trusty              8ec2039ef80b        5 seconds ago       255.7 MB
ubuntu              trusty              86ce37374f40        9 days ago          192.7 MB
~~~

### <i class="fa fa-play-circle" style="font-size:1em;"></i> コンテナの起動
* -d はデタッチモード。コンテナをバックグラウンドで実行。
* -p はポートフォワードの設定

~~~bash
core@core-01 ~ $ sudo docker run -d -p 2222:22 sample/ubuntu:trusty /usr/sbin/sshd -D
~~~

### <i class="fa fa-search-plus" style="font-size:1em;"></i> 起動確認

~~~bash
core@core-01 ~ $ docker ps
CONTAINER ID        IMAGE                  COMMAND               CREATED             STATUS              PORTS                  NAMES
d9aec64aac78        sample/ubuntu:trusty   "/usr/sbin/sshd -D"   2 seconds ago       Up 2 seconds        0.0.0.0:2222->22/tcp   nostalgic_rosalind
~~~

## <i class="fa fa-search-plus" style="font-size:1em;"></i> ローカル環境からの接続確認

~~~bash
$ ssh core@172.17.8.101 -p 2222
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.2.0-58-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

$ whoami
core
~~~

## <i class="fa fa-trophy" style="font-size:1em;"></i> Complete !

## <i class="fa fa-arrow-circle-right" style="font-size:1em;"></i> 参照
<i class="fa fa-external-link" style="font-size:1em;"></i> [Windows7にVirtualBox,Vagrantを入れ、Dockerを試してみる)](http://qiita.com/tenten0213/items/52f2706d63defd7b4854)
<i class="fa fa-github-square" style="font-size:1em;"></i> [CoreOS Vagrant GitHub](https://github.com/rutan/itamae-plugin-recipe-rtn_rbenv)