Dockerに馴染むべく、以下の例をなぞってみる。
VagrantとDockerについて名前しか知らなかったので試した – Qiita
http://qiita.com/hidekuro/items/fc12344d36d996198e96
1. ゲストOSとしてUbuntu14.04を導入
1 2 3 4 |
> mkdir c:\temp\ubuntu14.04 > cd c:\temp\ubuntu14.04 > vagrant init --minimal ubuntu/trusty64 > vagrant up |
先にBoxを追加してからinitしても同じこと。
1 2 3 4 5 |
> vagrant box add ubuntu/trusty64 > mkdir c:\temp\ubuntu14.04 > cd c:\temp\ubuntu14.04 > vagrant init ubuntu/trusty64 > vagrant up |
2. DockerをゲストOSに導入
VagrantのDocker Provisionerを使うと楽らしい。
プロビジョニングはvagrant upした際に自動的に実行される機能で、ソフトウェアを自動インストールするためなどに使う。
Vagrantfileを編集
1 2 3 4 |
Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.vm.provision "docker" ←追加 end |
1 |
> vagrant provision |
3. Dockerイメージの作成
bashを起動するだけのイメージを作成してみる。
作業ディレクトリを作成。
1 2 |
$ mkdir docker $ cd docker |
Dockerファイルを作成。
1 2 3 4 |
$ vi Dockerfile FROM ubuntu:trusty MAINTAINER 84kure CMD ["/bin/bash"] |
イメージをビルド。
1 |
$ docker build -t 84kure/test1 . |
以下オプション。
-t | イメージにタグ付け |
. | Dockerfileのパス |
コンテナを作成。
1 |
$ docker run -i -t -v /vagrant:/tmp/shared --name="test1" 84kure/test1 |
以下オプション。
-i | 対話モード |
-t | 擬似ターミナル割り当て |
-v | /vagrantを/tmp/sharedにマウント |
–name=”test1″ | コンテナに名前付け |
84kure/test1 | イメージ指定 |
bashが実行される。
1 2 |
root@1503b7d1d158:/# exit ←bashを終了 $ ←コンテナ終了して戻る |
コンテナを確認。
1 2 3 |
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1503b7d1d158 84kure/test1:latest "/bin/bash" 2 minutes ago Exited (0) 9 seconds ago test1 |
コンテナを捨てる。
1 |
$ docker rm 1503b |
4. Dockerイメージの作成を自動化
Vagrantfile
1 2 3 4 5 6 7 |
Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.vm.provision "docker" do |d| d.build_image "/home/vagrant/docker", args: "-t 84kure/test-image" d.run "84kure/test-image", args: "-d -t -v /vagrant:/tmp/shared" end end |
1 |
> vagrant reload --provision |
以上、超入門。