docker run变Docker Compose 文件备份docker配置

备份通过docker run命令运行起来的容器:
主要通过项目:

red5d/docker-autocompose

来实现的

一行脚本:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock red5d/docker-autocompose $(docker ps -q) > docker-compose.yml

这里的$(docker ps -q) 可以换成单个的容器名,这里我直接备份所有在运行中的容器

其他:calculate_docker_volume_size.sh
查看docker运行卷大小的脚本:
要用管理员权限运行

#!/bin/bash

# 初始化总大小
total_size=0

# 获取所有 Docker 卷
for volume in $(docker volume ls -q); do
    # 获取卷的路径
    volume_path="/var/lib/docker/volumes/$volume/_data"

    # 检查路径是否存在
    if [ -d "$volume_path" ]; then
        # 获取卷的大小,输出字节数
        size=$(du -sb "$volume_path" 2>/dev/null | cut -f1)

        # 如果 du 命令失败或没有获取到大小,跳过
        if [ $? -ne 0 ] || [ -z "$size" ]; then
            echo "Warning: Could not get size for volume $volume ($volume_path)"
            continue
        fi

        # 累加总大小
        total_size=$((total_size + size))
    else
        echo "Warning: $volume_path does not exist or is not a directory"
    fi
done

# 如果总大小大于零,转换为人类可读格式
if [ $total_size -gt 0 ]; then
    echo "Total volume data size: $(numfmt --to=iec $total_size)"
else
    echo "No valid volumes found or no data to calculate."
fi
暂无评论

发送评论 编辑评论


				
上一篇
下一篇