如何捕捉建筑码头图像的变化?

时间:2017-09-07 07:00:16

标签: docker deployment dockerfile

我是docker容器的新手。我遇到了一个关于如何捕获代码更改的问题。我的本地style.css文件中的某些行已更改。然后我再次构建了docker镜像,但实际上在浏览我的应用程序时没有任何改变。

以下是我在网上找到并试过的一些方法,但没有用。

  1. 删除图片并重新构建
  2. - 无缓存=真
  3. 在Dockerfile中添加注释以使其不同
  4. docker system prune
  5. - 拉
  6. (我还使用git pull在我的云实例上获取代码,这些文件被检查为最新的。)

    我对码头机制知之甚少,谁能告诉我问题是什么?

    我发现额外信息:
    停止容器并删除图像后,我重启我的实例,然后构建图像,再次运行容器。只有这样,我才能抓住这些变化。有谁知道这个问题?

    非常感谢!

1 个答案:

答案 0 :(得分:0)

容器和图像之间的区别似乎有所脱节。容器是应用程序的运行实例。它基于您已经构建的图像。该图像具有易于引用的标记,但对图像的真实引用是sha256哈希,构建新图像将更改标记指向的哈希,而不会影响任何正在运行的容器。

因此,在docker中更新正在运行的应用程序的工作流程是:

  1. 构建新图片
  2. 停止正在运行的容器
  3. 启动指向该图像的新容器
  4. 清理所有旧图像或停止容器
  5. 如果您使用的是docker-compose,它会使用docker-compose up命令自动执行中间两步,甚至删除旧容器。大多数用户保留一些较旧的图像副本,以便轻松回滚。