如何从现有镜像创建 Dockerfile

x33g5p2x  于2022-08-17 转载在 Docker  
字(0.6k)|赞(0)|评价(0)|浏览(605)

Docker 镜像是通过构建 Dockerfile 来创建的。构建过程执行 Dockerfile 中的指令以创建形成最终映像的文件系统层。

如果您已经有图像怎么办?你能检索到构建它的 Dockerfile 吗?在本文中,我们将介绍两种可以实现此目的的方法。

目标

在构建自己的 Docker 映像时,应将 Dockerfile 作为版本控制文件存储在源存储库中。这种做法可确保您始终可以检索用于组合图像的指令。
有时您将无法访问 Dockerfile。也许您正在使用公共注册表中的映像,但具有无法访问的源存储库。或者,您可能正在使用不直接对应于版本化 Dockerfile的图像快照。在这些情况下,您需要一种可以从计算机上的映像创建 Dockerfile 的技术。

Docker 不提供任何内置功能来实现这一点。构建的镜像与创建它们的 Dockerfile 没有关联。但是,您可以对构建过程进行逆向工程,以按需生成映像的 Dockerfile 的良好近似值。

Docker 历史命令

该docker history命令显示图像的图层历史。它显示了用于构建每个连续文件系统层的命令,使其成为复制 Dockerfile 时的良好起点。

这是 Node.js 应用程序的简单 Dockerfile:

FROM node:16
COPY app.js .
RUN app.js --init
CMD

相关文章