如何捕捉build筑docker形象的变化?

我是docker集装箱新手。 我遇到了一个关于如何捕捉我的代码更改的问题。 我的本地style.css文件中的一些行已被更改。 然后我再次构build了docker镜像,但是当我浏览我的应用程序时实际上并没有改变。

以下是我在网上find的一些方法,并尝试过,但没有奏效。

  1. 删除图像并重新构build
  2. –nocaching=真
  3. 在Dockerfile中添加注释使其不同
  4. docker系统修剪
  5. – 拉

(我也用git pull来获取我的云实例上的代码,这些文件被检查为最新的。)

我对docker机制知之甚less,谁能告诉我这个问题是什么?

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

非常感谢!

一个容器和一个图像之间的区别看起来是脱节的。 容器是应用程序的运行实例。 它基于您已经build立的图像。 该图像有一个标签,更容易引用,但真正的图像引用是sha256哈希和build立一个新的形象将改变标签指向的散列,而不会影响任何运行的容器。

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

  1. build立一个新的形象
  2. 停止正在运行的容器
  3. 开始一个新的容器指向该图像
  4. 清理旧图像或停止的容器

如果您使用的是docker-compose,它会使用docker-compose docker-compose up命令自动执行中间两步,甚至删除旧的容器。 大多数用户保留旧图像的几个副本,以便轻松回滚。