如何从 Docker 图片中卸载 APK 和 PIP?

How do you uninstall APK and PIP from Docker Image?

我正在对我的一个 docker 容器进行一些 "common sense" 强化,我的想法表明我可以尝试从 Alpine linux 卸载 APK 和 PIP我完成所有依赖项安装后的图像。

我很难找到有关这样做的任何信息。我的想法是容器是短暂的,所以永远不需要在 运行 容器中安装任何东西。

有人做过吗?谢谢!

您应该可以通过卸载 py-pip 软件包来删除 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 hardening/jailing 还没有做过,但是删除包管理器似乎是减少可能的攻击面的常见做法。这是一个有趣的 post 采用类似的方法:

对于删除 apk,这也将起作用并确保正确删除:apk --purge del apk-tools