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イメージを実行する。ホスト側ブラウザでvagrantのIPアドレス(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