要获取指定docker容器的启动参数,核心是还原docker run命令:需结合docker inspect提取hostconfig与config字段,或使用runlike工具一键生成完整命令,包括镜像名、-p、-v、-e、--restart等选项。

直接查看容器运行时命令与参数
容器实际执行的命令和参数记录在 Args 和 Path 字段中,这是最贴近“启动行为”的原始信息:
-
docker inspect -f '{{.Path}} {{.Args}}'—— 输出类似nginx ["-g", "daemon off;"] -
docker inspect -f '{{.Config.Cmd}}'—— 查看镜像默认 CMD(可能被覆盖) -
docker inspect -f '{{.Config.Entrypoint}}'—— 查看入口点,常与 CMD 组合生效
还原完整的 docker run 命令(推荐)
仅看 Cmd/Args 不足以还原启动时的全部参数(比如 -p、-v、-e、--restart 等)。此时建议使用社区成熟工具:
-
runlike:最常用,一键生成近似原始的
docker run命令
安装:pip install runlike
使用:runlike -p(加-p自动换行,更易读) -
rekcod:无需本地安装,纯容器方式运行
使用:docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nexdrew/rekcod
检查镜像构建层中的默认配置
若容器未显式覆盖 CMD/ENTRYPOINT,其启动逻辑源自镜像。可用以下命令追溯来源:
-
docker history—— 查看每层构建指令,重点关注含CMD或ENTRYPOINT的行 -
docker inspect | jq '.[0].Config.Cmd'—— 直接读取镜像默认启动命令
验证关键运行时配置
很多启动参数会体现在容器运行状态中,需单独提取:
-
端口映射:
docker inspect -f '{{.NetworkSettings.Ports}}' -
卷挂载:
docker inspect -f '{{.Mounts}}' -
环境变量:
docker inspect -f '{{.Config.Env}}' -
重启策略:
docker inspect -f '{{.HostConfig.RestartPolicy.Name}}'
runlike 正是基于这些字段反推命令,准确率高且省时。











