只需要一个选项:在中国会话中,进行以下内容的短语化: 使用Vagrant的Docker provisioner来使用CentOS镜像

关于Vagrant的Docker provisioner,请参阅《Docker – Provisioning – Vagrant Documentation》进行了解。

此外,还有一篇名为《Vagrant 1.4 / Docker Provisioner – Shin x blog》的文章,大致讲解了Vagrant 1.4和Docker供应商的内容。

本次我制作了适用于VirtualBox的CentOS基础镜像,并通过GitHub Releases进行了分享。我使用这个针对VirtualBox的CentOS 6.5镜像尝试了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

这个基础盒子是使用shiguredo/packer-templates的模板文件在Packer中创建的。由于使用了GitHub release功能,所以我们将其从hnakamur/packer-templates中进行了分叉,但内容是相同的。在创建时,可以从hnakamur/packer-templates的Release CentOS 6.5 x86_64 VM for VirtualBox 4.3.6 · hnakamur/packer-templates中获得相应的模板文件。

只有一个选项,将以下内容以中文进行本地化改写:
对于 Vagrant 的 Docker provisioner 的执行,需要安装 xz。以上提到的基础镜像 CentOS 是一个最简配置的镜像,没有安装 xz,所以我们使用 shell provisioner 安装了 xz。

如果需要,将private_network的地址设置为”192.168.33.xxx”,如果不需要,请将其删除。

在d.pull_images中,我指定了公共的CentOS官方docker镜像,该信息在Public docker images · dotcloud/docker Wiki中写明。

请根据需要适当更改”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并将其注册为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