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

如何指定外部卷/文件夹存储Docker内部文件系统并分享容器状态?

将Docker容器完整文件系统备份到外部驱动器并分享的可行性及操作步骤

完全可行,你可以通过以下步骤实现容器文件系统的备份、迁移与恢复:

一、备份容器到外部驱动器

  1. 挂载外部驱动器
    先将你的外部驱动器挂载到Ubuntu主机的某个目录,例如/mnt/external:

    sudo mkdir -p /mnt/external
    sudo mount /dev/sdX1 /mnt/external  # 替换sdX1为你的外部驱动器实际分区,可通过lsblk命令查看
    
  2. 导出容器文件系统
    使用docker export命令将容器的完整文件系统打包成tar文件,保存到外部驱动器:

    docker export <容器ID或容器名称> -o /mnt/external/container_fs.tar
    

    这个命令会捕获容器当前的所有文件、配置、已安装软件及数据,生成一个不包含容器元数据的文件系统快照。

二、他人恢复容器状态

拿到你的外部驱动器后,对方可以按以下步骤恢复:

  1. 挂载外部驱动器
    同样将驱动器挂载到他们的Ubuntu主机:

    sudo mkdir -p /mnt/external
    sudo mount /dev/sdX1 /mnt/external
    
  2. 导入文件系统为镜像
    用docker import将tar包转为Docker镜像:

    docker import /mnt/external/container_fs.tar my-restored-image:latest
    
  3. 启动恢复后的容器
    基于生成的镜像创建并运行容器,即可获得与你原容器一致的文件系统状态:

    docker run -it --name restored-container my-restored-image:latest /bin/bash
    

补充:完整保留容器配置的方法

如果需要连同容器的端口映射、环境变量、启动命令等元数据一起备份,建议先将容器转为镜像,再导出镜像:

  • 备份侧操作
    # 将容器提交为镜像
    docker commit <容器ID或名称> my-container-image:latest
    # 导出镜像到外部驱动器
    docker save my-container-image:latest -o /mnt/external/container_image.tar
    
  • 恢复侧操作
    # 导入镜像
    docker load -i /mnt/external/container_image.tar
    # 运行镜像(原容器的元数据会被保留)
    docker run -d --name restored-container my-container-image:latest
    

注意事项

  • 确保外部驱动器有足够存储空间,tar包大小与容器实际占用空间大致相当。
  • 挂载驱动器时注意权限,必要时使用sudo执行命令,或调整挂载目录的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:25:38