我正在对我的一个docker容器进行某种“常识”强化,我的思路是,在我完成所有依赖项的安装后,我可以尝试从Alpine linux镜像中卸载APK和PIP。

我很难找到这样做的任何信息。我的想法是,该容器是临时的,因此永远不需要在运行中的容器中安装任何东西。

有人做过吗?谢谢!

最佳答案

您应该能够通过卸载pip软件包来删除py-pip:
apk del py-pip
接着删除 pip 的缓存:
# rm -rf /<HOME_DIR>/.cache/pip
然后,要删除apk,请删除apk二进制文件和文件夹:

# rm -f /sbin/apk
# rm -rf /etc/apk
# rm -rf /lib/apk
# rm -rf /usr/share/apk
# rm -rf /var/lib/apk

我还没有自己完成Docker的加固/ jail 工作,但是删除软件包管理器似乎是减少可能的攻击面的一种常见做法。这是一篇有趣的文章,采用了类似的方法:
  • Minimising your attack surface by building highly specialised docker images - example for .NET Core 2.1 applications
  • 关于docker - 如何从Docker Image卸载APK和PIP?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54424420/

    10-16 09:36