gpt4 book ai didi

docker - Vagrant 的Docker Provisioner在启动时不会启动容器

转载 作者:行者123 更新时间:2023-12-02 18:33:14 25 4
gpt4 key购买 nike

我将Docker Provisioner用于Vagrant。他们在docs中说:

In addition to pulling images, the Docker provisioner can run and start containers for you. This lets you automatically start services as part of vagrant up.



这是我的Vagrantfile的一部分:
  config.vm.provision "docker" do |d|                                                                         
d.run "jwilder/nginx-proxy",
args: "-v /var/run/docker.sock:/tmp/docker.sock:ro -v /vagrant/certs:/etc/nginx/certs -p 80:80 -p 443:443"
d.run "redis",
args: "-v /vagrant/data:/data"
...
end

但是在 vagrant haltvagrant up之后,我的容器停止了。
$vagrant@vagrant-ubuntu-trusty-64:~$ docker ps -a

CONTAINER ID .. STATUS .. NAMES
6bb965d1a7b9 Exited (137) 2 days ago redis
7f45214f6f06 Exited (2) 2 days ago jwilder-nginx-proxy

最佳答案

好吧,我没有找到Vagrant无法在启动时启动容器的原因,但是解决方法是使用Docker的restart policies。因此,我更新了Vagrantfile,删除了所有容器,并做了vagrant provision以使用新的重启策略再次运行容器:

config.vm.provision "docker" do |d|                                                                         
d.run "jwilder/nginx-proxy",
args: "--restart=always -v /var/run/docker.sock:/tmp/docker.sock:ro -v /vagrant/certs:/etc/nginx/certs -p 80:80 -p 443:443"
d.run "redis",
args: "--restart=always -v /vagrant/data:/data"
...
end

--restart=always

Always restart the container regardless of the exit status. When you specify always, the Docker daemon will try to restart the container indefinitely.



现在在 vagrant halt之后,然后启动 vagrant up容器。

关于docker - Vagrant 的Docker Provisioner在启动时不会启动容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623916/

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