【问题标题】:Vagrant docker provisioner doesn't start containers on bootVagrant docker provisioner 不会在启动时启动容器
【发布时间】:2015-07-25 07:07:00
【问题描述】:

我为 Vagrant 使用 Docker 供应器。他们在docs说:

除了拉取镜像之外,Docker 配置器还可以运行和 为您启动容器。这使您可以自动启动服务 作为 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   

【问题讨论】:

    标签: docker vagrant vagrant-provision


    【解决方案1】:

    好吧,我没有找到 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,Docker 守护进程将尝试重新启动容器 无限期。

    现在在vagrant haltvagrant up 之后启动容器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 2018-12-01
      • 2018-04-04
      • 2022-01-14
      相关资源
      最近更新 更多