背景
服务器里起了好些服务,但启动脚本已经丢失了,怎样通过运行中的容器反推启动脚本呢?
启动脚本:环境变量,端口映射什么的
通过 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 文件。"
标签:container,inspect,echo,参数,file,output,docker
From: https://www.cnblogs.com/aaacarrot/p/17897483.html