是否可以使用Docker作为提供者和提供者运行Vagrant?
是的,你可以 - 我没有使用最新的版本流浪汉检查,但这是工作,直到流浪汉1.8.1
你想基本上是什么,如果你想旋转一个VM(运行Ubuntu或coreOS快速旋转并运行最少)运行多个码头集装箱。
当您运行流浪坞码头提供商时,您仍然可以管理您自己的流浪文件。
,所以你需要的主要Vagrantfile(通常坐在作为项目的根目录)
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
...
config.vm.provider "docker" do |docker|
docker.vagrant_vagrantfile = "host/Vagrantfile"
end
...
end
,然后在host/Vagrantfile
你会像
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Create and configure the VM(s)
Vagrant.configure(2) do |config|
config.vm.hostname = "docker-host"
# Spin up your own box (or one from Atlas)
# and then provision it with Docker
config.vm.box = "ubuntu/trusty64"
config.vm.provision "docker"
...
end
这又是一个典型的Vagrantfile
这指向将被分割的盒子(如果你想要最小的操作系统,它可以是ubuntu,centos或者coreOS),并且它将提供docker(即如果docker没有安装在盒子上,则安装docker),这样Docker就可以从你的虚拟机中获得。
好的,所以在这个阶段你有一个虚拟机,docker
提供者指向一个VM提供docker。现在,你要设置你的2个容器
在你的主Vagrantfile
您将添加2个容器,像
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
...
config.vm.provider "docker" do |docker|
docker.vagrant_vagrantfile = "host/Vagrantfile"
end
...
config.vm.define "python" do |python|
python.vm.provider "docker" do |docker|
...
docker.image = "xxx"
docker.ports = [80:80]
docker.name = "python-system"
end
end
config.vm.define "redis" do |redis|
redis.vm.provider "docker" do |docker|
...
docker.image = "xxx"
docker.ports = [80:80]
docker.name = "redis"
end
end
end
这将旋转你的2泊坞窗提供商/容器Python和Redis的。
你想运行docker的虚拟机? – CMPS