我想设置一个由两个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目录没有运气。谁能指出我可能会出现什么问题?
答案 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