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

如何避免Docker镜像覆盖Transmission配置文件?

解决linuxserver/transmission容器重启覆盖settings.json的问题

下面是几种可行的解决方案,按需选择:

1. 给配置文件设置只读权限

这是最简单的临时解决方案,阻止容器修改配置文件:

  • 先启动容器生成默认配置:docker-compose up -d
  • 修改./data/settings.json为你需要的配置(可以直接编辑本地文件,或者用docker-compose exec transmission nano /config/settings.json在容器内修改)
  • 修改完成后,给文件添加只读权限:chmod 444 ./data/settings.json
    容器重启时会因权限限制无法覆盖这个文件,后续若需要修改配置,需先把权限改回可写(chmod 644 ./data/settings.json)

2. 单独映射settings.json文件而非整个/config目录

修改docker-compose的卷映射,只挂载配置文件本身,而非整个目录:

volumes:
  - ./data/settings.json:/config/settings.json
  - ./data/downloads:/downloads  # 保留下载目录映射,根据你的需求调整
  - ./data/watch:/watch  # 可选,挂载监控目录

linuxserver系列镜像默认不会覆盖已存在的挂载文件,这样容器启动时会直接使用你本地的自定义配置,不会生成默认文件覆盖它。

3. 通过环境变量传递配置(推荐)

linuxserver/transmission镜像支持通过环境变量设置大部分常用配置项,无需手动修改settings.json,重启后配置也会保持:
在docker-compose的environment块中添加需要的配置,示例:

environment:
  - PUID=1000  # 你的用户ID,避免权限问题
  - PGID=1000  # 你的组ID
  - TRANSMISSION_DOWNLOAD_DIR=/downloads
  - TRANSMISSION_PEER_PORT=51413
  - TRANSMISSION_USER=admin
  - TRANSMISSION_PASS=yourpassword
  - TRANSMISSION_WEB_HOME=/transmission-web-control/  # 可选,设置自定义WebUI路径

这种方式更稳定,也便于通过docker-compose统一管理配置,避免手动修改文件的麻烦。

注意事项

  • 如果使用单独文件映射,确保本地settings.json的JSON格式完全正确,否则容器可能启动失败,修改前建议备份原文件
  • 若使用环境变量,可查看容器镜像的内置说明获取所有支持的环境变量列表
  • 部分情况下,容器第一次启动会生成默认配置,之后若配置文件存在则不会覆盖;若你遇到每次重启都覆盖的情况,优先尝试前两种方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:52:34