首页 > 解决方案 > docker构建上下文和敏感数据

问题描述

这个问题的标题可能表明它已经得到了回答,但相信我,我在这里进行了深入的搜索:-)

据我了解,在构建 docker-image 时,当前文件夹将被打包并作为构建上下文发送到 docker-deamon。从这个构建上下文中,docker-image 是通过“添加”或“复制”文件和“运行”Dockerfile 中的命令来构建的。

此外:如果我在 DockerFile 的文件夹中有敏感的配置文件,这些文件将作为构建上下文的一部分发送到 docker-deamon。

现在我的问题是: 假设我没有在我的 Dockerfile 中使用任何 COPY 或 ADD ......这些配置文件会包含在 docker-image 的某个地方吗?我在图像中运行了一个 bash 并且找不到配置文件,但也许它们仍然在图像的更深层中的某个地方?

基本上我的问题是:构建的上下文是否会存储在图像中?

标签: dockerdockerfile

解决方案


正如您所说的那样COPY,操作会创建图层,因此,只有这些操作会向图像添加一些ADD内容。RUN

构建上下文只是具有这些操作(特别是COPYADD)在构建映像时可以访问的资源的目录。但它不像“基础层”。

事实上,你说你运行了 bash 并仔细检查了那里没有敏感的东西。确保这一点的另一种方法是检查图像的图层。为此,docker history --no-trunc <image>


推荐阅读