首页 > 解决方案 > Dockerfile vs 从容器创建镜像

问题描述

使用 Dockerfile 创建映像与从容器创建映像之间有什么区别吗?(例如,从与 Dockerfile 相同的基础运行容器,将安装程序转移到容器,从命令行运行它们,然后从容器创建映像)。

至少我发现从 Windows Base docker 容器安装 VC Runtime 不起作用:(

标签: windowsdockerserverdevops

解决方案


如果您使用 Dockerfile 创建映像,那么通过从源代码管理中检出映像、更新基础映像上的标签或获取docker pull更新版本的映像并重新运行来更新映像几乎是微不足道的docker build

如果你通过运行创建镜像,docker commit一年后发现基础 Linux 发行版中存在严重的安全漏洞,需要立即停止使用它,你需要记住一年前构建镜像是做什么的以及你做了哪些步骤来重复它们,你最好希望你再次以完全相同的方式执行它们。哦,如果你在一个文本文件中写下你开始的基本图像FROM,你必须进入COPY的文件,然后你需要什么命令RUN来设置图像中的应用程序......

简而言之,编写 Dockerfile,将其提交到源代码管理,然后运行docker build几乎总是比运行docker commit. 您可以设置一个持续集成系统,以便在源代码更改时重建映像;当存在该安全漏洞时,将FROM线路碰撞到更新的基础映像并重建是微不足道的。


推荐阅读