使用Dockerfile创建映像与从容器创建映像之间有区别吗? (例如,从与Dockerfile相同的基础上运行容器,将nottaller转移到该容器,从命令行运行它们,然后从容器中创建映像)。
至少我发现从Windows Base docker容器安装VC Runtime不起作用:(
答案 0 :(得分:2)
如果您使用Dockerfile创建映像,那么通过从源代码管理中检出映像,更新基础映像上的标签或docker pull
对其进行更新,然后重新生成映像来更新映像几乎是微不足道的。 -运行docker build
。
如果您通过运行docker commit
创建映像,并且一年后发现基本Linux发行版中存在严重的安全漏洞,并且需要立即停止使用它,需要记住您一年前制作图像的步骤以及重复图像的确切步骤,并且最好希望您再次以完全相同的方式进行操作。哦,如果您只在文本文件中记下了开始的FROM
基本图像,必须插入的文件COPY
,然后需要RUN
设置了什么命令图片中的应用程序...
简而言之,与运行docker build
相比,编写Dockerfile,将其提交到源代码管理并运行docker commit
几乎总是更好的做法。您可以设置一个持续集成系统,以在源代码发生更改时重建映像。当存在该安全漏洞时,将FROM
行撞到较新的基本映像并进行重建很简单。