【docker】根据docker inspect获取启动参数

背景

服务器里起了好些服务,但启动脚本已经丢失了,怎样通过运行中的容器反推启动脚本呢?
启动脚本:环境变量,端口映射什么的

通过 docker inspect

通过 docker inspect 可以拿到一些信息,但信息确实很多,并且几十个服务,总不能一个一个去查,怎么办,
当然是写脚本,
但写脚本之前,先找一下,通过一个容器的 docker inspect 信息,怎样快速把 env 信息捞出来呢?

一个 docker inspect 的示例:

[
{
...
"State": {
"Status": "running",
...
"Config": {
...
"StdinOnce": false,
"Env": [
"spring.cloud.inetutils.preferred-networks=10.1.12.14",
],
...
}
]

获取 env 参数

docker inspect --format "{{range .Config.Env}}{{println .}}{{end}}" "$container" >> "$output_file"

获取容器端口映射

docker port "$container"

融合到一个脚本里面

#!/bin/bash
# 定义存储结果的文件路径
output_file="/tmp/docker.txt"
# 清空文件内容
> "$output_file"
# 遍历容器列表
containers=$(docker ps --format "{{.Names}}")
for container in $containers; do
echo "Container: $container" >> "$output_file"
# 获取容器的启动参数
echo " Start Command:" >> "$output_file"
docker inspect --format "{{range .Config.Env}}{{println .}}{{end}}" "$container" >> "$output_file"
# 取容器的端口映射信息
echo " Port Mapping:" >> "$output_file"
docker port "$container" >> "$output_file"
echo "" >> "$output_file"
done
echo "输出完成,请查看 $output_file 文件。"
posted @   aaacarrot  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2022-12-12 MAC执行sed命令报“command c expects \ followed by text”错误解决办法
点击右上角即可分享
微信分享提示