You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询指定Docker镜像内的可用shell命令列表?

查询Docker镜像预装可用命令的方法

全量导出镜像所有可用命令

不需要进入容器交互模式,直接通过单行命令输出镜像PATH路径下的所有可执行文件,导出到本地文件检索:

# 把node:18替换为你实际使用的镜像名+标签即可
docker run --rm node:18 sh -c 'ls -1 $(echo $PATH | tr ":" " ") | sort | uniq' > node_commands.txt

执行完成后,本地当前目录生成的node_commands.txt就是该镜像内所有可直接调用的命令列表,你可以提前搜索是否存在zip这类需要的命令,不需要等到流水线运行失败才发现。

快速校验单个命令是否存在

如果你不需要全量列表,只需要确认个别命令是否可用,直接执行以下命令即可:

# 示例校验zip命令,存在会输出命令路径,不存在返回空+非零状态码
docker run --rm node:18 which zip

你可以把这类校验命令提前加到本地构建预检查流程里,避免把问题带到线上流水线。

无需启动容器的查询方式

如果不想临时启动容器实例,也可以通过查看镜像构建历史确认预装的依赖包:

docker history node:18 --no-trunc

该命令会输出镜像每一层的构建操作,可以看到官方预装的所有系统包和二进制文件,适合排查额外安装的工具是否存在,缺点是不会列全系统默认自带的基础命令。

额外建议

官方node镜像分为多个变种,不同变种预装的命令差异极大:

  • alpine版本基于Alpine Linux,用busybox提供基础命令,默认没有预装zip、unzip等通用工具
  • slim版本裁剪了大量非必要系统包,仅保留node运行的最小依赖,缺很多常用命令
  • 完整版预装的系统包最多,但是体积也最大

如果你的流水线有固定的命令依赖,建议基于官方node镜像自行构建自定义运行镜像,提前把需要的依赖安装好,不需要每次都校验基础镜像的命令差异。

内容的提问来源于stack exchange,提问作者dwjohnston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:36:03