有人知道 vagrant up --no-parallel
标志到底有什么作用吗?我在文档中发现,每当我在同一个 Vagrantfile 中链接两个不同的容器时,我都应该使用它。
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "a" do |app|
app.vm.provider "docker" do |d|
d.name = "a"
d.image = "a"
end
end
config.vm.define "b" do |app|
app.vm.provider "docker" do |d|
d.name = "b"
d.image = "b"
d.link("a:a")
end
end
end
如果我有这样的 Vagrantfile,我应该运行什么?
vagrant up a --no-parallel && vagrant up b
或
vagrant up a && vagrant up b --no-parallel
或
vagrant up --no-parallel
?
最佳答案
当使用 vagrant up
来同时启动多台机器时,
--no-parallel
选项有意义:即 Vagrantfile 声明多台机器并 vagrant up 时
要么没有给出机器名称,要么没有给出多个机器名称。在这种情况下,如果提供者支持这一点(是的,Docker 提供者确实支持),Vagrant 将尝试并行启动所有请求的机器,除非给出 --no-parallel
。
因此,使用 Docker 提供程序,在链接容器时,可以使用 --no-parallel
来同时启动多台机器:
$ vagrant up --no-parallel
或
$ vagrant up /regex to match machine names/ --no-parallel
但是,如果您使用单独的命令一台一台地启动计算机,则无论是否指定 --no-parallel
都不会产生任何效果(也不会造成任何损害)。所以人们可以简单地这样做:
$ vagrant up a && vagrant up b
关于docker - Vagrant up --no-parallel 标志含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31568299/