嗨,
我一直在 Windows PC 上使用 Vagrant + Docker 和 Virtualbox。
几周以来,我将注意力转向了 Ubuntu 16.04 LTS,并开始将我的 Vagrant 东西迁移到我的新硬件上。
一些 Vagrants 在我的旧 PC 上使用 docker-compose。现在,在 Ubuntu 上,我想直接使用 Docker 和 Docker-compose,而不需要 Virtualbox。
当然,我可以忘记 Vagrant 并直接使用 Docker compose,但我更喜欢通过 Vagrant 监控每个环境,以保持同质性。
我找不到有关如何在这个新上下文中使用“docker compose”的信息(Ubuntu 16 + Vagrant:prodiver = Docker 和 Provisionner = Docker compose)。
一些链接显示“vagrant-docker-compose”插件的用法,但它对我不起作用。我真的不明白为什么,但我认为这是合乎逻辑的,因为我直接在我的机器上使用 Docker,没有 VBox,而且每个示例似乎都表明您正在使用 VBox。
我是否误认为解决问题的正确方法?
现在我的 Vagrantfile 看起来像这样(我尝试了其他东西......没有任何成功......):
Vagrant.configure(2) do |config|
config.vm.provider "docker" do |docker|
docker.image="ubuntu:16.04"
docker.compose=true
end
config.vm.provision :docker
config.vm.provision :docker_compose, rebuild: true, yml: "/direct/docker-compose.yml", run: "always"
end
但是 docker-compose.yml 没有加载....andd Vagrant 说
"he container started either never left the "stopped" state or very quickly reverted to the "stopped" state. ..."
事实上:我不明白我必须在哪里指出我的 docker-compose.yml 文件的路径....
你可以帮帮我吗 ?
你有一个线索,或者一个 tuto 的链接吗?
你能启发我思考解决问题的正确方法.... :[
问候 :)
最佳答案
首先,澄清一下,即使您使用的是 Ubuntu 并且 native 运行 Linux,docker
和 docker_compose
供应商(我假设 https://github.com/leighmcculloch/vagrant-docker-compose )仍将在 Vagrant VM 内运行。它没有在您的主机上使用 native Docker。
接下来,docker-compose.yml
它引用的文件来自 Vagrant 机器内部。通常,这是位于 /vagrant
的项目的共享文件夹。 .在这种情况下,假设 docker-compose.yml
文件位于 Vagrantfile
旁边, yml
路径应该是 /vagrant/docker-compose.yml
.
关于Ubuntu + Vagrant + docker compose 不使用 Virtualbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44892491/