首页 > 解决方案 > 从 Docker 基础映像中排除文件/文件夹

问题描述

我们正在使用 Twistlock 来查找 docker 镜像中的安全漏洞。

不幸的是,我们在 docker 基础镜像中看到了一些安全问题(例如:Alpine、Logstash、自定义构建的 Docker 镜像)。作为修复,我们将继续升级到可用的最新版本。不幸的是,对于自定义构建的 Docker 映像,除了使用它之外,我们没有任何控制权。

只是想知道是否有办法排除 docker 基础映像中的文件/文件夹,如下所示

FROM XXX:/logstash.7.6.0
***Add Exclusions for files/folders inside logstash***
VOLUME /tmp
ENV XXX
USER logstash

我遇到了 dockerignore 文件的用法,但我相信它们用于忽略当前项目中的文件/文件夹,而不是基本 docker 映像中的文件/文件夹。

有人可以在这里分享一些输入吗?

标签: dockersecuritydockerfiledockerignore

解决方案


您实际上可以通过添加以下内容来删除您想要的大部分内容: RUN rm -rf [path]RUN yum remove -y [package_name](此指令适用于基于 centos 的图像)指令在FROM指令之后到您的 docker 文件.

警告!这些删除操作很可能会导致您的图像出现严重问题。

例子:

FROM XXX:/logstash.7.6.0

USER root # change user to root in order to get full permission
RUN rm -rf /fileX /dirY 
RUN yum remove -y packageX

VOLUME /tmp
ENV XXX
USER logstash

还要检查这个页面。它包括一些安全建议。


推荐阅读