在Docker中,卷对应宿主机物理位置,但直接去备份可能会造成路径错误、数据一致性等问题,官方建议通过挂载并打包的方式进行迁移。

  1. 在宿主机上执行备份命令
docker run --rm \
    -v chatgpt_mirror_db:/mnt/chatgpt_mirror_db \
    -v chatgpt_gateway_db:/mnt/chatgpt_gateway_db \
    -v $(pwd):/backup \
    busybox \
    sh -c "cd /mnt && tar czvf /backup/chatgpt_volumes_backup.tar.gz chatgpt_mirror_db chatgpt_gateway_db"
  1. 在目标主机上创建卷

如果是docker-compose项目先在项目中创建卷再恢复

docker volume create chatgpt_mirror_db
docker volume create chatgpt_gateway_db
  1. 恢复卷操作
docker run --rm \
    -v chatgpt_mirror_db:/mnt/chatgpt_mirror_db \
    -v chatgpt_gateway_db:/mnt/chatgpt_gateway_db \
    -v $(pwd):/backup \
    busybox \
    sh -c "cd /mnt && tar xzvf /backup/chatgpt_volumes_backup.tar.gz"
  1. 检查数据恢复情况
docker run -it --rm -v <卷名>:/data busybox sh
最后修改:2025 年 03 月 04 日
如果觉得我的文章对你有用,请随意赞赏