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

主机磁盘满时如何配置Docker容器使用其他驱动器存储

问题核心原因

你遇到的空间不足报错和Deluge写入临时文件的逻辑、Docker容器存储机制直接相关:

  • linuxserver版Deluge默认会将下载过程中的临时缓存、种子会话状态、未完成分片数据写入容器内/tmp目录
  • 你的现有compose配置仅映射了/config和/downloads两个路径,/tmp属于容器的可写层,默认存储在宿主机/var/lib/docker/overlay2/对应的系统盘分区下,和你执行docker-compose up命令时所在的工作目录没有任何关系,所以换目录启动服务不会解决问题。
解决方案(全流程可通过Portainer操作)

两个问题先给出明确结论:

  • 完全可以通过Portainer完成配置,让容器临时数据写入你挂载的1TB CIFS驱动器,不需要额外在宿主机敲命令
  • 单独为容器的/tmp路径添加卷映射,完全足以解决当前的空间不足报错,是改动最小、风险最低的方案。

方案1:单独映射/tmp目录(推荐优先使用)

这个方案不需要调整Docker全局配置,不会影响其他运行中的容器,操作步骤如下:

  1. 提前在宿主机CIFS挂载盘下创建临时文件目录,比如/mnt/sbox1/docker/deluge/tmp,确保UID/GID为1001的用户对该目录有读写权限
  2. 打开Portainer,在容器列表找到正在运行的deluge容器,先点击停止按钮
  3. 点击容器操作栏的「Duplicate/Edit」按钮进入编辑页
  4. 下拉页面找到「Volumes」配置块,点击「Add volume」新增挂载项
  5. 挂载类型选择Bind mount,「Host path」填写你刚创建的宿主机目录/mnt/sbox1/docker/deluge/tmp,「Container path」填写/tmp
  6. 确认其他配置和原有配置一致后,点击页面下方的「Deploy the container」重新部署容器即可

部署完成后,Deluge所有写入/tmp的临时数据都会直接落到1TB的CIFS盘上,不会再占用系统盘空间。

方案2:修改Docker全局存储路径(适合多容器大容量场景)

如果你希望后续所有容器的可写层数据都默认存储到大容量盘,也可以通过Portainer修改Docker daemon配置:

  1. 先在大容量本地存储(注意不要直接放CIFS上,避免元数据损坏)创建Docker数据目录,比如/mnt/sdb/docker-data
  2. 打开Portainer左侧菜单,进入「Settings」-「Environments」,选中你当前使用的本地Docker环境
  3. 找到Docker daemon配置编辑框,添加"data-root": "/mnt/sdb/docker-data"配置项
  4. 保存配置后,需要在宿主机执行systemctl restart docker重启服务生效,重启后Docker会自动迁移现有镜像、容器数据到新路径,操作前请备份重要的容器配置数据。
注意事项
  • 由于你使用CIFS作为存储盘,挂载时建议添加参数uid=1001,gid=1001,file_mode=0777,dir_mode=0777,mfsymlinks,避免出现权限不足、符号链接创建失败的问题
  • 不要把Docker全局的data-root目录设置在CIFS共享上,CIFS不支持完整的POSIX文件语义,容易出现镜像损坏、容器启动失败的问题,单独映射/tmp到CIFS完全可以满足Deluge的使用需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:27:14