【发布时间】:2026-01-21 03:00:02
【问题描述】:
使用 Dockerfile 创建映像与从容器创建映像之间有什么区别吗? (例如,从与 Dockerfile 相同的基础运行容器,将 istaller 转移到容器,从命令行运行它们,然后从容器创建映像)。
至少我发现从 Windows Base docker 容器安装 VC Runtime 不起作用:(
【问题讨论】:
标签: windows docker server devops
使用 Dockerfile 创建映像与从容器创建映像之间有什么区别吗? (例如,从与 Dockerfile 相同的基础运行容器,将 istaller 转移到容器,从命令行运行它们,然后从容器创建映像)。
至少我发现从 Windows Base docker 容器安装 VC Runtime 不起作用:(
【问题讨论】:
标签: windows docker server devops
如果您使用 Dockerfile 创建映像,通过从源代码管理中检出映像、更新基础映像上的标记或 docker pull更新映像的新版本并重新运行来更新映像几乎是微不足道的docker build.
如果您通过运行 docker commit 创建映像,并且在一年后发现基础 Linux 发行版中存在严重的安全漏洞,您需要立即停止使用它,您需要记住一年前你做了什么来构建图像,以及你重复它们的确切步骤,你最好希望你再次以完全相同的方式进行操作。哦,如果你在一个文本文件中写下你启动FROM 的基本映像,你必须在COPY 中写入哪些文件,然后在RUN 中写下哪些命令来设置映像中的应用程序。 ..
简而言之,编写 Dockerfile,将其提交到源代码管理,然后运行 docker build 几乎总是比运行 docker commit 更好的做法。您可以设置一个持续集成系统,以便在源代码更改时重建映像;当存在该安全漏洞时,将FROM 行添加到更新的基础映像并重建是微不足道的。
【讨论】:
Dockerfile 不仅需要更改文件系统,还可能会更改,例如ENV、ENTRYPOINT 等