You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导出Docker容器镜像到其他系统时如何查找需导出的Volume数据

结论

你定位到的/var/lib/docker/volumes/spring-microservies-course_psdb-volume/_data就是需要导出的Volume全量数据目录,执行ls命令返回的PostgreSQL配置文件、数据目录就是完整的持久化数据,没有找错。

完整迁移操作步骤

  • 第一步:停止原容器,避免导出过程中数据读写产生不一致
    命令:sudo docker stop postgresql
  • 第二步:导出容器镜像
    先将当前运行状态的容器提交为可迁移镜像:
    sudo docker commit postgresql postgresql:migrate
    导出镜像为压缩包:
    sudo docker save -o postgresql-migrate.tar postgresql:migrate
  • 第三步:导出Volume数据(两种方案二选一,更推荐第二种跨设备兼容方案)
    方案1:直接打包宿主机Volume目录
    sudo tar -cvf psdb-volume.tar -C /var/lib/docker/volumes/spring-microservies-course_psdb-volume/_data .
    方案2:临时容器导出(无需手动找Volume路径,适配所有Docker存储驱动/版本)
    sudo docker run --rm -v spring-microservies-course_psdb-volume:/volume -v $(pwd):/backup alpine tar -cvf /backup/psdb-volume.tar -C /volume .
  • 第四步:目标设备导入操作
    1. 导入镜像:sudo docker load -i postgresql-migrate.tar
    2. 创建同名Volume:sudo docker volume create spring-microservies-course_psdb-volume
    3. 导入Volume数据:sudo docker run --rm -v spring-microservies-course_psdb-volume:/volume -v $(pwd):/backup alpine tar -xvf /backup/psdb-volume.tar -C /volume
    4. 按原容器启动参数启动新容器即可,自动加载导入的Volume数据

注意事项

  • 禁止直接拷贝Volume目录到目标设备,容易因为权限、Docker存储驱动差异导致数据不可用,必须用tar打包的方式迁移
  • 如果原容器需要持续运行,可以在stop导出后立刻执行sudo docker start postgresql恢复服务

内容的提问来源于stack exchange,提问作者AndreaNobili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:36:05