当前位置: 代码网 > 服务器>服务器>Linux > Docker在CentOS上如何备份

Docker在CentOS上如何备份

2025年03月30日 Linux 我要评论
centos系统下docker容器数据备份指南本文介绍两种在centos系统上使用docker备份数据的方法:运行中容器数据备份和docker镜像备份。一、运行中容器数据备份创建备份目录: 在服务器

centos系统下docker容器数据备份指南

本文介绍两种在centos系统上使用docker备份数据的方法:运行中容器数据备份和docker镜像备份。

一、运行中容器数据备份

  1. 创建备份目录: 在服务器上创建一个目录用于存储备份文件,例如:

    mkdir -p /home/docker/mysql/data_back && chmod -r 777 /home/docker/mysql/data_back
    登录后复制
  2. 确认容器id: 使用以下命令获取名为mysql容器的id:

    docker ps -aqf "name=mysql"
    登录后复制
  3. 创建备份脚本 (backup.sh): 在/home/docker/mysql/data_back目录下创建backup.sh脚本,并添加以下内容:

    #!/bin/bash
    # 获取容器id
    container_id=$(docker ps -aqf "name=mysql")
    echo "mysql容器id: $container_id"
    
    # 检查容器是否存在
    if [ -z "$container_id" ]; then
        echo "未找到名为mysql的容器!"
        exit 1
    fi
    
    # mysql登录信息 (请替换为您的实际信息)
    mysql_user="root"
    mysql_password="your_password"  # 请替换为您的mysql密码
    mysql_port="3306"
    
    # 是否删除过期备份 (true/false)
    expire_backup_delete="true"
    expire_days=7
    
    # 备份文件存放路径
    backup_location="/home/docker/mysql/data_back"
    
    # 备份时间戳
    backup_time=$(date +%y%m%d%h%m)
    backup_ymd=$(date +%y-%m-%d)
    backup_dir="$backup_location/$backup_ymd"
    
    # 获取数据库列表 (排除系统数据库)
    databases=$(docker exec $container_id mysql -u$mysql_user -p$mysql_password -e 'show databases;' | grep -ve '^(database|information_schema|performance_schema)$')
    echo "数据库列表: $databases"
    
    # 备份数据库
    if [ -n "$databases" ]; then
        mkdir -p "$backup_dir"
        while read dbname; do
            echo "开始备份数据库: $dbname..."
            docker exec $container_id mysqldump --defaults-extra-file=/etc/mysql/conf.d -f -b --default-character-set=utf8 "$dbname" | gzip > "$backup_dir/bak-$dbname-$backup_time.sql.gz"
            if [ $? -eq 0 ]; then
                echo "数据库 $dbname 备份成功: $backup_dir/bak-$dbname-$backup_time.sql.gz"
            else
                echo "数据库 $dbname 备份失败!"
            fi
        done 
    登录后复制
  4. 配置mysql (my.cnf): 确保/etc/mysql/conf.d目录下有正确的配置文件,并设置正确的mysql用户和密码。 请务必将your_password替换成您的实际mysql密码。

  5. 赋予脚本执行权限:

    chmod +x /home/docker/mysql/data_back/backup.sh
    登录后复制
  6. 设置定时任务 (crontab): 使用crontab -e编辑crontab,添加定时任务,例如每天凌晨2点执行备份:

    0 2 * * * /home/docker/mysql/data_back/backup.sh
    登录后复制

二、docker镜像备份

  1. 使用docker save命令: 使用以下命令将镜像保存为tar包:

    docker save -o mycentos.tar mycentos_new:1.1
    登录后复制

请根据实际情况修改脚本中的参数,例如容器名称、mysql密码、备份路径和定时任务。 备份完成后,请妥善保管备份文件,并定期测试恢复流程。 记住定期检查备份的完整性和有效性。

以上就是docker在centos上如何备份的详细内容,更多请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com