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

Pop!_OS 20.04下如何将Docker Named Volume创建到其他硬盘分区

Docker卷指定到其他硬盘分区的配置方案

前置检查

首先确认目标机械硬盘分区已经配置fstab永久挂载,避免重启后挂载路径失效。


方案1:仅针对爬虫容器做绑定挂载(推荐,不影响其他Docker服务)

你之前使用docker run -v 卷名:/容器路径的方式创建的是Docker托管的命名卷,默认会存储在Docker根目录下,因此会一直生成在/var/lib/docker/volumes/路径。要直接写入目标分区,使用绑定挂载即可:

  • 第一步:在目标分区创建专属的数据目录,配置读写权限:
    # 替换为你实际的分区挂载路径
    sudo mkdir -p /mnt/hdd/crawler_data
    sudo chmod 755 /mnt/hdd/crawler_data
    
  • 第二步:启动容器时使用绝对路径绑定挂载:
    docker run -v /mnt/hdd/crawler_data:/容器内数据存储目录 你的镜像启动参数
    
    冒号左侧为本地硬盘的绝对路径,右侧为容器内部存放爬取数据的目录,所有写入容器对应目录的数据会直接存入目标机械硬盘分区

方案2:修改Docker全局根目录,所有资源均存储到目标分区

如果需要将所有Docker镜像、容器、卷都迁移到目标分区,修改Docker数据根目录即可:

  • 第一步:停止Docker相关服务
    sudo systemctl stop docker docker.socket containerd
    
  • 第二步:迁移原有Docker数据到目标分区
    # 替换为你目标分区的Docker根目录路径
    sudo rsync -av /var/lib/docker/ /mnt/hdd/docker_root/
    # 备份原有数据
    sudo mv /var/lib/docker /var/lib/docker.old
    
  • 第三步:修改Docker配置指定根目录,新建/编辑/etc/docker/daemon.json:
    {
      "data-root": "/mnt/hdd/docker_root"
    }
    
  • 第四步:重载配置启动服务
    sudo systemctl daemon-reload
    sudo systemctl start docker docker.socket containerd
    
  • 第五步:验证配置生效,输出为你设置的目标路径即为成功:
    docker info | grep "Docker Root Dir"
    
  • 验证所有容器、镜像运行正常后,可删除原有备份释放空间:
    sudo rm -rf /var/lib/docker.old
    

30天数据留存归档补充

可直接配置定时任务实现自动归档,将以下命令写入crontab每日执行即可:

# 替换为你实际的数据路径和归档路径
find /mnt/hdd/crawler_data -type f -mtime +30 -exec mv {} /mnt/hdd/crawler_archive/ \;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:54:02