Dockerfile vs Docker image



我正在努力创建一些用于在开发机器上进行测试的 docker 映像。我计划为我们的主应用程序构建一个,并为我们的每个外部依赖项(postgres,elasticsearch等)构建一个。对于主应用程序,我正在努力决定编写 Dockerfile 或编译要托管的图像。

一方面,随着时间的推移,Dockerfile 很容易共享和修改。另一方面,我希望在简单地提交新映像之前,在 vim 中进行高级配置(自定义应用程序属性文件)会容易得多。

我知道无论哪种方式我都可以得到相同的结果,但我正在寻找任何一个方向的优点、缺点和陷阱。

作为旁注,我计划使用 Fig 将它们打包在一起。我对这个工具的初步印象非常积极。

谢谢!

使用 Dockerfile:

  • 您有一个描述如何构建映像的"审核日志"。对我来说,如果要在更多人工作的生产管道中使用,并且可维护性应该是优先事项,那么这是至关重要的。
  • 可以自动执行映像的生成过程,这是使用系统更新更新容器的简单方法,或者如果容器必须参与持续交付管道。
  • 这是创建容器层的更简洁的方法(每个 Dockerfile 命令都是不同的层)
更改

容器并提交更改非常适合用于测试目的和概念测试的快速开发。但是如果你打算使用结果图像一段时间,我肯定会使用Dockerfiles。

除此之外,如果你必须修改一个文件,并使用bash工具(awk,sed...)的结果非常乏味,你可以在构建过程中从外面添加任何你想要的文件。

我完全同意 Javier 的观点,但您需要了解,使用 dockerfile 创建的一个映像可能与 1 天后具有相同版本dockerfile 的映像构建不同。

也许在您的构建过程中,您会自动检索应用程序或操作系统等的最新更新......

此时,如果您需要重现崩溃或任何您无法依赖 dockerfile 的内容。

最新更新