在 docker 1.10 之后,docker history
如果您从其他地方拉取图像,则不再显示图像的中间层,而不是在本地构建。
这个 github issue讨论了这个变化,并且还提到使用docker save
and docker load
,你可以利用中间层作为缓存。
这是否意味着,如果构建了一个图像并简单地将其上传到存储库(即没有 tar 文件),那么下载该图像的人就无法恢复中间层?
我特别想知道的是:
COPY sensitive_file .
RUN do_something_with ./sensitive_file
RUN rm ./sensitive_file
像上面这样写Dockerfile,并假设(除非docker中有未知漏洞)这个敏感文件不会被其他人访问,是否可以?
我知道还有其他处理凭据或敏感文件的方法,例如设置本地服务器和RUN wget file && use file && rm file
swarm 的 docker secret,或使用 docker vault。我不是在寻找不同的方法来处理敏感文件;相反,我只是对上述方法是否使文件可访问感兴趣。谢谢!