假设我跑
docker run --rm -ti --entrypoint bash test-image
我知道这是基于debian:bullseye
但我没有关于该图像的其他信息。
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
有没有一种方法(操作系统方面)来检查这是否是slim
完整版本的 docker 镜像?
例如,也许检查一些不应该在slim
图像中找到的包?
答案1
实际上没有任何方法可以保证您可能使用了哪个图像。我通常使用最小的网络安装用于构建系统的图像,然后添加我想要的所有包。有时,这可能最终是一个完整的图形安装,但大多数情况下它是一个适合目标预期用途的构建(以及我的一组首选实用程序包)。
您可以使用dpkg
(或dpkg-query
) 来确定是否安装了特定的软件包。可能有更好的方法,但这种方法对我有用:
dpkg -l 'rsync' | grep '^ii' # Indication that 'rsync' is installed
dpkg -l 'ls*' | grep '^ii' # List of matching installed packages
请参阅动词man dpkg-query
下方--list
了解更多详细信息