docker 镜像配置文档需通过 docker inspect 提取元数据,结合 jq 过滤、脚本生成 markdown 或 json,辅以 docker history 和 dockerfile 归档,实现结构化、可读、可维护的配置说明。

导出 Docker 镜像的配置信息用于文档编写,核心是提取镜像的元数据(如标签、创建时间、层级结构、环境变量、入口命令、暴露端口等),而不是导出镜像文件本身。Docker 本身不提供“导出配置为 Markdown 或 JSON 文档”的一键命令,但可通过组合命令获取结构化信息,并整理成文档所需格式。
查看并提取镜像基础配置
使用 docker inspect 获取完整 JSON 格式的镜像元数据,这是最权威的配置来源:
-
docker inspect nginx:1.25—— 输出全部配置(含层信息、Cmd、Env、ExposedPorts、Labels 等) - 只提取关键字段,便于文档引用:
docker inspect -f '{{.Config.Env}}' nginx:1.25→ 查看环境变量docker inspect -f '{{.Config.ExposedPorts}}' nginx:1.25→ 查看暴露端口docker inspect -f '{{.Config.Cmd}}' nginx:1.25→ 查看默认启动命令
生成可读性更强的配置摘要
对 docker inspect 的输出做简化处理,适配文档场景:
- 用
jq工具过滤并格式化(需提前安装):docker inspect nginx:1.25 | jq '.[0].Config | {Env,ExposedPorts,Cmd,WorkingDir,Labels}' - 导出为 clean JSON 文件供文档引用:
docker inspect nginx:1.25 > nginx_config.json - 若需表格化呈现(如 Word 或 Markdown 文档),可手动或脚本提取以下字段:
• 镜像名称与标签
• 创建时间(.Created)
• 基础镜像(.Parent或.Config.Image)
• 启动用户(.Config.User)
• 卷挂载声明(.Config.Volumes)
补充构建上下文与历史信息
文档常需说明“这个镜像是怎么来的”,可结合以下命令还原线索:
-
docker history nginx:1.25—— 查看分层构建步骤(含指令、大小、创建时间) - 若镜像由本地 Dockerfile 构建,建议一并归档该 Dockerfile 和
.dockerignore文件 - 运行时配置建议单独记录:
• 常用docker run示例(含 -p、-v、-e 参数)
• 健康检查命令(.Config.Healthcheck字段)
自动化生成文档片段(可选)
写一个简单 Bash 脚本,一次性输出常用配置块:
- 例如生成 Markdown 片段:
echo "## $1\n- **Tag**: $(docker inspect -f '{{.RepoTags[0]}}' $1 2>/dev/null)\n- **Created**: $(docker inspect -f '{{.Created}}' $1)\n- **CMD**: $(docker inspect -f '{{.Config.Cmd}}' $1)" > config_summary.md - 支持传参调用:
./gen-doc.sh nginx:1.25











