带有docker的Vagrant多机器尝试创建两个boot2docker vms

时间:2014-07-28 14:48:43

标签: macos vagrant docker

我想设置一个由两个Docker容器组成的小环境。我为他们准备了Dockerfiles并使用Docker本身,他们正确地旋转。但是,当我想在OSX上使用Vagrant时,vagrant up会创建两个VM,导致端口冲突并导致其中一个Docker容器根本无法创建。

这是我使用的Vagrantfile:

Vagrant.configure("2") do |config|

  config.vm.define "ldap" do |ldap|
    ldap.vm.provider "docker" do |d|
      d.build_dir="ldap"
      d.name="ldap"
    end
  end

  config.vm.define "phpldapadmin" do |pla|
    pla.vm.provider "docker" do |d|
      d.build_dir="phpldapadmin"
      d.link("ldap:ldap")
      d.ports << "50000:80"
    end
  end
end

当我命名容器&#34; phpldapadmin1&#34;和&#34; ldap1&#34;它突然起作用了。我尝试删除.vagrant和我的〜/ .vagrant.d目录没有运气。谁能指出我可能会出现什么问题?

1 个答案:

答案 0 :(得分:0)

“vagrant up”尝试并行“up”所有应用程序,因此每个人都会检查VM是否正在运行(现在还没有),因此每个人都会尝试创建VM。相反,您必须以串行方式启动第一个容器,然后其余容器可以并行启动。我有一个名为start.sh的脚本基本上就是这样做的:

#/bin/bash

vagrant up an-app # this will start the VM
vagrant up other-app1 other-app2 other-app3 # these can startup in parallel since the VM exists