gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:43:23 26 4
gpt4 key购买 nike

我想建立一个由两个Docker容器组成的小型环境。我为它们准备了Dockerfile,并使用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

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

最佳答案

“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

关于macos - 带有docker的Vagrant多机尝试创建两个boot2docker vms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24997878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com