LoginSignup
37
37

More than 5 years have passed since last update.

VagrantのDocker provisionerでCentOSのイメージを使う

Posted at

VagrantのDocker provisionerについてはDocker - Provisioning - Vagrant Documentationに説明があります。

また、ざっくり分かる Vagrant 1.4 / Docker Provisioner - Shin x blogという記事もあります。

今回は、VirtualBox用のCentOS base boxを作ってGitHub Releasesで共有するで作成したVirtualBox用CentOS 6.5 boxでDocker provisionerを試してみました。

Vagrantfile

Vagrantfileは以下の通りです。

Vagrant.configure("2") do |config|
  config.vm.box = "centos6.5"
  config.vm.network :private_network, ip: "192.168.33.22"
  config.vm.provision "shell",
    inline: "yum install -y xz"
  config.vm.provision "docker" do |d|
    d.pull_images "centos"
    d.run "centos",
      cmd: "echo 'hello world' > /tmp/hello"
  end
end

予め以下のコマンドを実行してvagrantのboxを登録しておきます。

$ vagrant box add centos6.5 https://github.com/hnakamur/packer-templates/releases/download/v1.0.1/centos-6-5-x64-virtualbox.box

このbase boxはshiguredo/packer-templatesのテンプレートファイルを使ってPackerで作成したものです。GitHub releaseの機能を使う都合上hnakamur/packer-templatesにフォークしていますが内容は同じです。作成時のテンプレートファイルはRelease CentOS 6.5 x86_64 VM for VirtualBox 4.3.6 · hnakamur/packer-templatesから取得可能です。

vagrantのdocker provisioner実行にはxzが必要です。上記のbase boxのCentOSはminimalな構成になっていてxzが入っていないので、shell provisionerでxzをインストールしています。

private_networkのアドレスは"192.168.33.xxx"で適宜設定するか、不要なら削除してください。

d.pull_imagesではPublic docker images · dotcloud/docker Wikiに書かれているオフィシャルのCentOSイメージを指定しています。

d.runのところは、適宜変更してください。ここではテストとしてecho 'hello world' > /tmp/helloというコマンドを実行するようにしました。

あとはvagrant upするだけで、dockerをインストールして実行してくれます。便利!

$ vagrant up

CentOS 6.5のdocker base imageを使う場合のVagrantfile

docker用にCentOS 6.5のbase imageを自作するで作成したdocker base imageをhnakamur/centos:6.5として登録してありますので、それを使うようにしたVagrantfileは以下の通りです。

Vagrant.configure("2") do |config|
  config.vm.box = "centos6.5"
  config.vm.network :private_network, ip: "192.168.33.22"
  config.vm.provision "shell",
    inline: "yum install -y xz"
  config.vm.provision "docker" do |d|
    d.pull_images "hnakamur/centos:6.5"
    d.run "hnakamur/centos",
      cmd: "echo 'hello world' > /tmp/hello"
  end
end
37
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
37