Motrix Server 容器镜像 tag 怎么选?生产固定版本与自动升级通道的取舍
Motrix Server 容器镜像 tag 怎么选生产固定版本与自动升级通道的取舍【免费下载链接】MotrixA full-featured download manager.项目地址: https://gitcode.com/GitHub_Trending/mo/Motrix把 Motrix Server 以 Docker 容器部署到 NAS 或家庭服务器时第一个决策不是端口或挂载而是镜像引用写哪个 tag。Motrix 的带 tag 发布会把同一镜像发布到两个 registrydocker.io/motrixapp/motrix-serverDocker Hub和ghcr.io/agalwood/motrix-serverGHCR内容相同的备用源。不同 tag 的升级行为完全不同有的 tag 在下次pull时就会换到新版本有的则永远指向同一个 digest。本文基于仓库自带的 Compose 部署方式说明如何在“固定版本”与“自动升级通道”之间做选择以及选定之后如何升级、回滚和验证。完整文档见 docs/docker-server.zh-CN.md。先弄清 Motrix 会发布哪些 tag每个发布镜像都包含linux/amd64和linux/arm64两种架构Docker 会自动选择匹配的 manifestIntel/AMD NAS 使用amd64ARMv8 NAS 使用arm64不支持 32 位 ARM。各引用形式的行为与文档给出的建议用途如下引用行为建议用途:2.3.4不可变正式版本生产与回滚:2.32.3 系列最新稳定补丁自动接收补丁升级:2主版本 2 的最新稳定版本自动接收次版本和补丁升级:stable最新稳定版本明确选择稳定通道的用户:latest与stable指向同一 digestNAS 界面默认值:2.3.4-beta.2不可变预发布版本仅用于评估几条影响取舍的规则预发布版本不会更新2.3、2、stable或latest所以选择 floating tag 不会把 beta 拉进生产。项目不发布edge或nightly镜像。floating tag 只有在两个 registry 的不可变 manifest digest 一致后发布流程才会推进两个源不会出现不同内容。按升级策略选择 tag生产与回滚选不可变的完整版本 tag如:2.3.4。它不会随新发布变化出问题时可以精确回到同一个引用这是文档明确给出的生产用途。只想自动接收补丁选:2.3。次版本发布后它停在原处pull只会拿到补丁。接受次版本自动升级选:2主版本 2 内所有稳定次版本和补丁都会自动进入。NAS 界面手动部署:latest与:stable指向同一 digest是 NAS 镜像搜索界面的默认值。评估 beta 功能使用不可变的 beta tag如:2.3.4-beta.2文档明确它“仅用于评估”不要作为生产引用。取舍的核心在于floating tag 换取省事代价是每次pull引入的具体版本由项目发布节奏决定升级时机不在你手里不可变 tag 反过来需要你主动替换引用但升级和回滚都指向明确。不改 Compose 文件切换 tag仓库的 compose.yaml 中镜像字段是image: ${MOTRIX_IMAGE:-motrixapp/motrix-server:latest}默认拉取 Docker Hub 的:latest。选择 GHCR、SemVer tag 或 digest 时只需导出MOTRIX_IMAGE无需修改 Compose 文件export MOTRIX_IMAGEghcr.io/agalwood/motrix-server:2.3.4 docker compose up -d --wait如果希望由 NAS 管理存储位置和备份也可以用 compose.named-volumes.yamlnamed volume 部署Docker 会按镜像 UID/GID 1000 的所有权初始化两个 volume切换方式相同。追求最高可复现性时固定 digest如需最高可复现性使用 release 或 registry 显示的 digest 作为引用。manifest-digest替换为你从发布说明或 registry 页面查到的实际 manifest digestexport MOTRIX_IMAGEmotrixapp/motrix-serversha256:manifest-digest docker buildx imagetools inspect $MOTRIX_IMAGEmanifest 包含 OCI source、revision、version、license、documentation labels以及 SPDX SBOM 和 SLSA provenance。带 tag 的 digest 使用 GitHub Actions OIDC 签名可以用cosign校验VERSION和DIGEST替换为实际发布版本与 manifest digestVERSION2.3.4 DIGESTsha256:manifest-digest cosign verify \ --certificate-identity https://github.com/agalwood/Motrix/.github/workflows/release.ymlrefs/tags/v${VERSION} \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ docker.io/motrixapp/motrix-server${DIGEST}升级、回滚与验证升级流程升级前先记录当前镜像 digest 并备份/data它是 SQLite 数据库、设置、aria2 session、插件状态等所有必须备份的内容。做文件系统级备份前先停止服务确保 SQLite 与 aria2 session 一致docker compose stop server tar -C . -czf motrix-data-$(date %Y%m%d).tar.gz motrix-data docker compose start server然后再拉取并只替换容器docker compose pull server docker compose up -d --wait docker compose ps两个挂载、生成的 operator token、下载、aria2 状态和已安装插件都会保留。如需受控升级在拉取前把MOTRIX_IMAGE设置为不可变 SemVer tag 或 digest。注意新的主版本属于兼容性边界应先阅读 release notes。回滚流程回滚时选择之前记录的不可变 tag/digest 并重建服务。如果新版本迁移过持久状态应停止 Motrix在启动旧镜像前恢复与其匹配的/data备份不要假定旧二进制一定能读取新版本写入的状态。只有下载备份策略要求时才恢复/downloads。数据库、operator token 与secrets.lockbox应来自同一代备份。这正是不可变 tag 的价值floating tag 部署在回滚时无法直接指定“回到昨天那个版本”只能依赖当时记录的 digest。升级后如何验证公开的GET /healthz只有在 HTTP 服务和 aria2 均就绪时才成功详细诊断需要 operator tokenTOKEN$(cat motrix-data/operator-token) curl --fail http://127.0.0.1:8080/healthz curl --fail \ --header Authorization: Bearer ${TOKEN} \ http://127.0.0.1:8080/api/diagnostics docker compose logs --tail200 server诊断信息包含引擎状态、生效存储路径、允许下载根目录、runtime UID、插件安装/secret-store 状态和 FFmpeg 探测结果。升级后容器 unhealthy 时文档给出的处理顺序是检查日志、诊断和两个挂载然后回滚到已记录的不可变镜像及其配套/data备份。拉取失败与架构不匹配两个与 tag 直接相关的现象文档给出了明确判断方法现象检查与修复拉取返回 404 或manifest unknown检查 repository/tag 拼写以及是否已经有包含镜像的 release可在另一个 registry 尝试相同不可变 tag不要改用名称相似的第三方镜像。首个包含容器镜像的版本发布前出现该错误表示公开镜像尚未发布。no matching manifest用docker info确认 NAS 是 64 位amd64或arm64不支持 32 位 ARM。floating tag 的一个已知边界官方镜像在构建时安装 Alpine 的ca-certificates并通过SSL_CERT_FILE让 aria2 fork 使用/etc/ssl/certs/ca-certificates.crt。已经运行的容器无论使用哪种 tag不会自动更新镜像层中的 CA bundle文档要求把“定期拉取维护版本并重建容器”纳入日常补丁流程。也就是说floating tag 只让下次pull更容易拿到新镜像运行中的容器仍然需要显式 pull 加重建才会真正升级这条补丁流程在选 tag 时应当一并考虑。选定策略后落到操作上就是生产固定版本走“记录 digest 备份/data 替换不可变 tag”自动升级通道走:2.3或:2并依赖同一套 healthz/diagnostics 验证。文档中所有命令与变量说明以 docs/docker-server.zh-CN.md 为准。【免费下载链接】MotrixA full-featured download manager.项目地址: https://gitcode.com/GitHub_Trending/mo/Motrix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →