MacOS X上にDocker環境を構築する(Vagrant + Centos7編)

概要

MacOS X仮想マシン(centos7)をインストールし、その上でDockerイメージを実行する。centos7は、それ自身がdockerコンテナなので、コンテナ管理ツール(Docker Tool)などは不要。

Centos7をインストール

$ vagrant box add centos7 https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box
$ vagrant init centos7
$ vagrant up
$ vagrant ssh

Dockerをインストール

$ sudo yum install -y docker
$ sudo systemctl start docker
$ sudo systemctl enable docker
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'

vagrantをインストールする

vagrantのdownloadページからrpmファイルをダウンロードし、インストールする。

$ wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.4_x86_64.rpm
$ sudo rpm -ivh vagrant_1.7.4_x86_64.rpm

Dockerイメージを実行する

イメージをダウンロードする

$ mkdir hello-world
$ cd hello-world/
$ sudo docker pull spesnova/hello-world
Trying to pull repository docker.io/spesnova/hello-world ...

実行する

だウンロードしたDockerイメージを実行する。ホスト側ブラウザでvagrantIPアドレス(http://192.168.33.10ls0/)にアクセスするとHello worldが表示される。

$ sudo docker run -p 80:4567 spesnova/hello-world bundle exec ruby app.rb
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
[2015-09-22 04:45:30] INFO  WEBrick 1.3.1
[2015-09-22 04:45:30] INFO  ruby 2.1.5 (2014-11-13) [x86_64-linux-gnu]
== Sinatra/1.4.5 has taken the stage on 4567 for production with backup from WEBrick
[2015-09-22 04:45:30] INFO  WEBrick::HTTPServer#start: pid=1 port=4567
192.168.33.1 - - [22/Sep/2015:04:45:56 +0000] "GET / HTTP/1.1" 200 11 0.0061
192.168.33.1 - - [22/Sep/2015:04:45:56 UTC] "GET / HTTP/1.1" 200 11
- -> /
192.168.33.1 - - [22/Sep/2015:04:45:57 +0000] "GET /favicon.ico HTTP/1.1" 404 448 0.0008
192.168.33.1 - - [22/Sep/2015:04:45:56 UTC] "GET /favicon.ico HTTP/1.1" 404 448
http://192.168.33.100/ -> /favicon.ico

Dockerイメージ一覧

$ sudo docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
docker.io/spesnova/hello-world   latest              abbc273c7880        6 months ago        152.5 MB

Dockerプロセス一覧

$ sudo docker ps -a
CONTAINER ID        IMAGE                  COMMAND                CREATED             STATUS                      PORTS               NAMES
146b7320588b        spesnova/hello-world   "bundle exec ruby ap   54 minutes ago      Exited (0) 14 minutes ago                       lonely_curie
a41b83be7386        spesnova/hello-world   "bundle exec ruby ap   56 minutes ago      Exited (0) 55 minutes ago

関連情報