【问题标题】:Vagrant multi-machine with docker tries to create two boot2docker vms带 docker 的 Vagrant 多机尝试创建两个 boot2docker vm
【发布时间】:2014-08-20 02:12:23
【问题描述】:

我想建立一个由两个 Docker 容器组成的小型环境。我为他们准备了 Dockerfiles 并使用 Docker 本身,他们正确地启动了。但是,当我想在 OSX 上使用 Vagrant 时,vagrant up 会创建两个虚拟机,遇到端口冲突并导致其中一个 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

当我将容器命名为“phpldapadmin1”和“ldap1”时,它突然起作用了。我尝试删除 .vagrant 和我的 ~/.vagrant.d 目录,但没有成功。谁能指出这里可能出了什么问题?

【问题讨论】:

    标签: macos vagrant docker


    【解决方案1】:

    “vagrant 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
    

    【讨论】:

    猜你喜欢
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多