Modmanager是一个集中式工具,用于下载和更新其他Linuxserver容器的Docker mods。它能集中管理mod的下载与更新,减少重复下载,提升容器部署效率。
该镜像利用Docker manifest实现多平台支持。只需拉取lscr.io/linuxserver/modmanager:latest即可获取适合您架构的镜像,也可通过标签拉取特定架构镜像。支持的架构如下:
| 架构 | 可用 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
您可以通过DOCKER_MODS环境变量指定要下载的mods(如同其他容器),或通过将Docker套接字挂载到容器中(或通过内置的DOCKER_HOST环境变量配置合适的替代端点)允许通过Docker发现mods。无论选择哪种方式,需要安装mods的容器仍需设置相应的DOCKER_MODS环境变量。
Modmanager容器会在启动时下载所有需要的mods,然后每6小时检查一次更新;如果使用Docker发现,它会自动检测新的mods。
您可以将/modcache路径挂载到其他Linuxserver容器中,这些容器将从该路径获取mods,而非每次重新下载。
如果mod需要安装额外的包,每个容器在重新创建时仍需下载这些包。
注意:Modmanager容器本身不支持应用mod或自定义文件/服务。Modmanager仅支持2025年1月1日之后构建的Linuxserver镜像,虽然它可能与使用我们镜像作为基础的第三方容器兼容,但我们不提供支持。
映射docker.sock可能带来安全风险,因为Docker在主机上具有root权限,任何完全访问docker.sock的进程也将获得主机的root权限。Docker API本身没有内置访问限制,但您可以通过如我们的Docker套接字代理这样的解决方案为docker.sock使用代理,该方案能限制API对特定端点的访问。
[!NOTE] 在尝试设置前,请确保完全了解操作流程,否则可能因猜测导致多种问题。
Modmanager可以查询和下载远程主机以及本地主机的mods。如果仅使用DOCKER_MODS环境变量而不使用Docker发现,只需在远程主机上挂载/modcache文件夹,并确保所有参与容器都映射该目录。
如果使用Docker发现,我们唯一支持的连接远程主机的方式是我们的套接字代理容器。在每个远程主机上运行一个实例:
[!WARNING] 如果套接字代理允许任何写操作(
POST=1、ALLOW_RESTART=1等)或暴露非必要的API元素,请勿将其暴露到局域网。绝对不要将套接字代理暴露到广域网。
ymlmodmanager-dockerproxy: image: lscr.io/linuxserver/socket-proxy:latest container_name: modmanager-dockerproxy environment: - CONTAINERS=1 - POST=0 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro tmpfs: - /run ports: - 2375:2375 restart: unless-stopped read_only: true
然后通过DOCKER_MODS_EXTRA_HOSTS环境变量添加远程主机,使用完整协议和端口,多个服务器用竖线(|)分隔,例如:
yaml- DOCKER_MODS_EXTRA_HOSTS=tcp://host1.example.com:2375|tcp://host2.example.com:2375|tcp://192.168.0.5:2375
如上所述,您需要在远程主机上挂载/modcache文件夹,并确保所有参与容器都映射该目录。
以下是使用该镜像创建容器的方法,您可以使用docker compose或docker cli。
[!NOTE] 除非参数标记为“可选”,否则均为必填项,必须提供值。
yaml--- services: modmanager: image: lscr.io/linuxserver/modmanager:latest container_name: modmanager environment: - DOCKER_MODS= `#可选` - DOCKER_HOST= `#可选` - DOCKER_MODS_EXTRA_HOSTS= `#可选` volumes: - /path/to/modcache:/modcache - /var/run/docker.sock:/var/run/docker.sock:ro `#可选` restart: unless-stopped
bashdocker run -d \ --name=modmanager \ -e DOCKER_MODS= `#可选` \ -e DOCKER_HOST= `#可选` \ -e DOCKER_MODS_EXTRA_HOSTS= `#可选` \ -v /path/to/modcache:/modcache \ -v /var/run/docker.sock:/var/run/docker.sock:ro `#可选` \ --restart unless-stopped \ lscr.io/linuxserver/modmanager:latest
容器通过运行时传递的参数进行配置(如上所示)。参数格式为<外部>:<内部>。例如,-p 8080:80表示将容器内的80端口映射到主机的8080端口。
| 参数 | 功能 |
|---|---|
-e DOCKER_MODS= | 竖线分隔(|)的要下载的mods列表 |
-e DOCKER_HOST= | 指定Docker端点(如果不使用docker.sock) |
-e DOCKER_MODS_EXTRA_HOSTS= | 竖线分隔(|)的其他要查询和下载mods的主机列表,详见应用设置部分 |
-v /modcache | Modmanager的mod缓存目录 |
-v /var/run/docker.sock:ro | 将主机的Docker套接字挂载到容器中(只读) |
bashdocker exec -it modmanager /bin/sh
bashdocker logs -f modmanager
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' modmanager
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/modmanager:latest
我们的大多数镜像都是静态的、版本化的,需要更新镜像并重新创建容器才能更新内部应用。除相关readme.md中特别说明外,不建议或支持在容器内更新应用。请参考上述“应用设置”部分了解是否推荐更新。
以下是更新容器的说明:
更新镜像:
bashdocker compose pull
bashdocker compose pull modmanager
更新容器:
bashdocker compose up -d
bashdocker compose up -d modmanager
还可以删除旧的悬空镜像:
bashdocker image prune
bashdocker pull lscr.io/linuxserver/modmanager:latest
bashdocker stop modmanager
bashdocker rm modmanager
bashdocker image prune
[!TIP] 我们推荐使用Diun获取更新通知。不推荐或支持其他自动无人值守更新容器的工具。
如果您想对这些镜像进行本地修改以用于开发或自定义逻辑:
bashgit clone [***] cd docker-modmanager docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/modmanager:latest .
可以使用lscr.io/linuxserver/docker-qemu-static在x86_64硬件上构建ARM变体,反之亦然:
bashdocker run --rm --privileged lscr.io/linuxserver/docker-qemu-static --reset
注册后,可以使用-f Dockerfile.aarch64指定要使用的dockerfile。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429