不能直接用 docker export 批量导出所有容器的运行配置与状态,因其仅导出文件系统快照,不包含启动命令、环境变量、端口映射、重启策略等元数据;应使用 docker inspect 提取配置、docker stats 采集实时状态,并结合 cadvisor+prometheus+grafana 实现长期可观测性。

不能直接用 docker export 批量导出所有容器的“运行配置与状态”,因为 docker export 只导出容器文件系统快照(tar 包),不保存启动命令、环境变量、端口映射、重启策略、挂载卷等配置信息,也不包含实时状态(如 CPU/内存使用率)。
想批量获取运行配置,用 docker inspect
每个容器的完整配置(包括 CMD、ENV、Volumes、PortBindings、RestartPolicy 等)都存在 JSON 元数据中,可用 docker inspect 批量提取:
- 导出所有容器的完整配置到单个 JSON 文件:
docker ps -aq | xargs docker inspect > all-containers-config.json - 只提取关键字段(如名称、镜像、端口、状态、重启策略),生成结构化表格:
docker ps -aq | xargs -I{} docker inspect -f 'Name: {{.Name}} | Image: {{.Config.Image}} | Ports: {{.NetworkSettings.Ports}} | Status: {{.State.Status}} | Restart: {{.HostConfig.RestartPolicy.Name}}' {} - 导出为 CSV 格式便于 Excel 分析(需额外处理换行和引号),推荐配合
jq工具:docker ps -aq | xargs docker inspect | jq -r '.[] | [.Name, .Config.Image, (.NetworkSettings.Ports | tojson), .State.Status, .HostConfig.RestartPolicy.Name] | @csv' > configs.csv
想批量采集实时运行状态,用 docker stats
资源使用情况(CPU、内存、网络 I/O)属于动态指标,docker stats 是唯一原生命令支持批量输出:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 一次性获取所有运行中容器当前快照(不流式刷新):
docker stats --no-stream --format "table {{.Container}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}\t{{.BlockIO}}" --all - 导出为 CSV(适合定时采集存档):
docker stats --no-stream --format "{{.Container}},{{.Name}},{{.CPUPerc}},{{.MemUsage}},{{.NetIO}}" --all > stats-$(date +%s).csv - 注意:
--all参数可包含已停止容器,但其资源字段显示为N/A;真正有意义的数据仅来自running状态容器。
想长期保存并分析配置+状态,建议组合方案
单纯导出一次性的文本或 JSON 不足以支撑运维决策。生产环境更推荐结构化、可持续采集的方式:
- 用
cAdvisor容器统一采集所有 Docker 实例的详细指标(含历史趋势) - 通过
Prometheus定期拉取 cAdvisor 暴露的/metrics接口 - 用
Grafana展示容器配置标签(如 name、image)与资源曲线的关联视图 - 对关键容器,可定期执行
docker inspect + docker stats快照脚本,压缩归档到 NAS 或对象存储
不复杂但容易忽略:配置是静态的、可复现的;状态是瞬时的、需持续采集。两者必须分开处理,再按需关联。










