Vagrant 在提供者使用 docker 的时候,修改 vagrantfile 如何更新 docker container?

2016-05-24 16:12:48 +08:00
 Gonster

Vagrant 在提供者使用 docker 的时候,修改 vagrantfile 如何更新 docker container ?

我用 docker provider 在ubuntu/trusty64宿主虚拟机里创建了一个 docker 容器,一开始配置文件大概是这样的:

Vagrant.configure(2) do |config|
  config.vm.define "kafka" do |v|
    v.vm.provider "docker" do |d|
      d.image = "spotify/kafka"
      d.volumes = ["/var/docker/kafka:/data"]
      d.ports = ["2181:2181", "9092:9092"]
      d.vagrant_vagrantfile = "./Vagrantfile.proxy"
    end
  end
end

镜像拉下来,容器创建成功了,后来我发现忘记加环境变量,所以又改了 vagrantfile :

  config.vm.define "kafka" do |v|
    v.vm.provider "docker" do |d|
      d.image = "spotify/kafka"
      d.volumes = ["/var/docker/kafka:/data"]
      d.ports = ["2181:2181", "9092:9092"]
      d.env = {
        ADVERTISED_HOST: "localhost",
        ADVERTISED_PORT: "9092",
        KAFKA_HEAP_OPTS: "-Xmx512M -Xms512M"
      }
      d.vagrant_vagrantfile = "./Vagrantfile.proxy"
    end
  end

于是我用 Vagrant 重新启动了虚拟机,从控制台打印的启动日志里看发现容器似乎没有重新创建,网上查了半天最后我还是到宿主机里直接把 container 删了 - -| , 重启虚拟机以后 Vagrant 直接又照之前的 provision 设置跑了一遍。

但是实在是有点慢,而且 Vagrant 应该有重建 provider 是 docker 的机器的命令吧? vagrant destroy 不知道是不是会把宿主虚拟机也删了怕麻烦没试。问一下这种情况应该怎么更新 docker 容器比较方便?

4634 次点击
所在节点    Vagrant
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/280928

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX