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

如何将已停止的Docker容器rocky_85备份至远程机器或挂载点?

已停止Docker容器的跨磁盘/远程备份方案

针对你遇到的本地磁盘不足、端口被占无法重启容器的情况,以下几种方法可以直接备份已停止的rocky_85容器到外部挂载点或远程机器:

1. 直接打包容器文件系统到外部挂载点

Docker容器的底层文件系统默认存储在/var/lib/docker/containers/<容器ID>目录下,可直接打包迁移:

  • 先获取容器ID:
    docker inspect -f '{{.Id}}' rocky_85
    
  • 将大磁盘挂载到本地目录(例如/mnt/large_disk),然后打包容器文件:
    tar -czvf /mnt/large_disk/rocky_85_backup.tar.gz /var/lib/docker/containers/<替换为容器ID>
    
  • 若需传到远程机器,用scp直接传输打包好的文件:
    scp /mnt/large_disk/rocky_85_backup.tar.gz remote_user@remote_host:/path/to/remote/backup/
    

2. 流式导出到远程,完全避免本地磁盘占用

利用docker export的标准输出特性,结合管道直接将容器文件系统传到远程,无需本地存储中间文件:

  • 直接导出到远程机器:
    docker export rocky_85 | ssh remote_user@remote_host 'cat > /path/to/remote/rocky_85_export.tar'
    
  • 如需压缩传输,添加gzip减少带宽占用:
    docker export rocky_85 | gzip | ssh remote_user@remote_host 'cat > /path/to/remote/rocky_85_export.tar.gz'
    

3. 迁移Docker存储目录到外部大磁盘(适合后续复用容器)

如果之后仍需在本地操作该容器,可将Docker的默认存储目录迁移到挂载的大磁盘:

  1. 停止Docker服务:
    systemctl stop docker
    
  2. 同步现有Docker数据到挂载点:
    rsync -aX /var/lib/docker/ /mnt/large_disk/docker/
    
  3. 新建或修改Docker配置文件/etc/docker/daemon.json,指定新的存储路径:
    {
      "data-root": "/mnt/large_disk/docker"
    }
    
  4. 备份原存储目录:
    mv /var/lib/docker /var/lib/docker.old
    
  5. 重启Docker服务:
    systemctl start docker
    

完成后即可正常使用docker commit等命令,所有容器数据将存储在大磁盘上。

注意事项

  • 操作前务必确认rocky_85容器处于停止状态,防止文件系统数据不一致
  • 远程传输时若网络不稳定,建议先打包到本地挂载点,再用rsync断点续传
  • 用docker export导出的文件系统可通过docker import恢复为容器:
    docker import rocky_85_export.tar rocky_85:backup
    

内容的提问来源于stack exchange,提问作者Daniel YC Lin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:44:56