Docker 文件与 Docker 图片

Dockerfile vs Docker image

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

一方面,随着时间的推移,Dockerfile 很容易共享和修改。另一方面,我希望高级配置(自定义应用程序 属性 文件)在 vim 中更容易完成,然后再简单地提交新图像。

我知道我可以用任何一种方法得到相同的结果,但我正在寻找任何一种方法的优点、缺点和陷阱。

附带说明一下,我计划使用 Fig 将所有内容打包在一起。我对这个工具的初步印象非常好。

谢谢!

使用 Dockerfile:

  • 您有一个 'audit log' 描述图像的构建方式。对我来说,如果要将其用于更多人工作且可维护性应优先考虑的生产管道,这是最基本的。
  • 您可以自动化映像的构建过程,这是使用系统更新更新容器的一种简单方法,或者如果它必须参与持续交付管道。
  • 这是一种创建容器层的更简洁的方法(每个 Dockerfile 命令都是不同的层)

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

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

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

也许在您的构建过程中,您会自动检索应用程序或 os 等的最新更新……

而且这个时候如果需要重现崩溃什么的就不能依赖dockerfile了