从断供到自救:如何备份MinIO多架构Docker镜像

1096 字
5 分钟
从断供到自救:如何备份MinIO多架构Docker镜像

写在前面#

说实话,被MinIO这个操作搞懵了。你能想象吗?MINIO 本来用得好好的,突然有一天MinIO官方说:“我们不再提供预编译的Docker镜像了,只提供源代码”。我当时就崩溃了。你知道这是什么概念吗?意味着如果你本地没有备份,以后想用MinIO就得自己编译,而且跨架构(amd64和arm64)的部署会变得超级麻烦。

社区里吵得沸沸扬扬,有人理解,有人骂娘。但现实很残酷:对于像我这样已经依赖MinIO,还要跨架构部署的人来说,未雨绸缪真的很有必要。

老实讲,这事儿MinIO早有铺垫。2021年从Apache 2.0改成AGPLv3,2025年5月移除了社区版的控制台管理功能,到2025年10月直接停止DockerHub上的预编译镜像。这一系列操作,说白了就是商业化进程的一部分。

还好我有一台amd64架构的NAS,还有一台M4芯片的Mac(arm64架构),因为之前的项目需要,两台设备上拉取了 minio/minio:RELEASE.2025-04-22T22-12-26Z 这个版本的镜像。在这个过渡期,毕竟仍然还有蛮多项目都依赖这个项目。看来我得提前备份一下镜像到自己的仓库中,以策万全。

当然,如果你觉得这事儿太麻烦,或者手头正好没有这两个架构的环境,那我也有个偷懒的办法:直接用我备份好的镜像。

我已经把 amd64 和 arm64 两个架构的版本都打包上传了,你只需要一条命令就能搞定:

Terminal window
docker pull gowah/minio:RELEASE.2025-04-22T22-12-26Z

这个镜像已经配置好了多架构支持,无论你在 x86 还是 Apple Silicon 上都能自动拉取对应的版本。

不过话说回来,授人以鱼不如授人以渔,关于我是如何备份MinIO多架构Docker镜像的?我把这个操作分成4个步骤,跟你们分享一下。

MinIO 多架构 Docker 镜像的备份流程#

我把这个操作分成4个步骤,跟你们分享一下:

第1步:登录Docker仓库#

在两台设备上都要登录。建议用Access Token而不是密码,更安全。

Terminal window
docker login
# 或者私有仓库
docker login your.private.registry.com

第2步:给镜像打标签#

在amd64的NAS上执行:

Terminal window
docker tag minio/minio:RELEASE.2025-04-22T22-12-26Z yourusername/minio:RELEASE.2025-04-22T22-12-26Z-amd64

在arm64的Mac上执行:

Terminal window
docker tag minio/minio:RELEASE.2025-04-22T22-12-26Z yourusername/minio:RELEASE.2025-04-22T22-12-26Z-arm64

这步其实就是给每个架构的镜像加个”身份标识”,方便后续管理。

第3步:推送各架构镜像#

把刚才打标签的镜像推到你的仓库里:

Terminal window
# amd64设备上
docker push yourusername/minio:RELEASE.2025-04-22T22-12-26Z-amd64
# arm64设备上
docker push yourusername/minio:RELEASE.2025-04-22T22-12-26Z-arm64

第4步:创建多架构镜像清单#

这步最关键,也是很多人翻车的地方。你要把两个架构的镜像”捏合”成一个统一的多架构镜像。

Manifest(清单)是Docker用来管理多架构镜像的机制,它能让同一个镜像名称在不同架构上自动拉取对应的版本。

Terminal window
# 创建Manifest清单
docker manifest create yourusername/minio:RELEASE.2025-04-22T22-12-26Z \
yourusername/minio:RELEASE.2025-04-22T22-12-26Z-amd64 \
yourusername/minio:RELEASE.2025-04-22T22-12-26Z-arm64
# 为amd64架构添加注释
docker manifest annotate --arch amd64 yourusername/minio:RELEASE.2025-04-22T22-12-26Z \
yourusername/minio:RELEASE.2025-04-22T22-12-26Z-amd64
# 为arm64架构添加注释(注意v8变体)
docker manifest annotate --arch arm64 --variant v8 yourusername/minio:RELEASE.2025-04-22T22-12-26Z \
yourusername/minio:RELEASE.2025-04-22T22-12-26Z-arm64
# 推送清单
docker manifest push yourusername/minio:RELEASE.2025-04-22T22-12-26Z
# 验证一下
docker manifest inspect yourusername/minio:RELEASE.2025-04-22T22-12-26Z

如果一切正常,你应该能看到amd64和arm64两个条目。

现在就可以开始#

我建议你:

  1. 检查一下本地还有哪些MinIO镜像,特别是多架构的版本
  2. 立刻备份到你的私有仓库,不要等设备出问题了才想起来
  3. 验证一下镜像能不能正常拉取,别到时候备份了才发现是坏的

说实话,这次备份操作真的让我想明白了一件事:技术世界里,没有什么是一成不变的。

开源项目有开源项目的生存压力,商业化也是人之常情。作为用户,我们能做的就是:在接受变化的同时,给自己留好退路。

备份镜像这件事,表面上看是在保存一个软件版本,实际上是在守护自己的确定性。毕竟,在快速演进的技术世界里,未雨绸缪真的远胜于临渴掘井。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
从断供到自救:如何备份MinIO多架构Docker镜像
https://blog.moewah.com/posts/minio-multi-architecture-docker-image-backup-guide/
作者
MoeWah
发布于
2025-04-18
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
1
Gitea Webhook 自动部署:零依赖实现 Astro 博客多端同步发布
私有化部署 如何在多个地方(家里、公司)推送代码后实现博客自动构建?本文分享基于 Gitea Webhook 的零依赖解决方案,重点解决 Astro 博客多端同步发布的痛点,助你实现代码一推,博客自动更新的理想工作流。
2
使用 Lume 在 macOS 虚拟机中隔离运行 OpenClaw/Moltbot:完整部署指南
私有化部署 想在 macOS 虚拟机中安全隔离运行 OpenClaw 并实现高效部署?本文提供私有化部署实战复盘,详细步骤演示 Lume 创建虚拟机的全过程,帮助你快速搭建并确保系统稳定。
3
博客关键词排名怎么做?从挖词到内容修剪的实战策略
增长与SEO 博客关键词排名怎么做?避开高竞争词,用GSC正则批量挖掘中低难度长尾词。详解搜索意图判断、难度分阶策略、内容修剪三步法。七年实战复盘,选词与内容优化双线推进。
4
Docker-Compose 自部署 MinIO S3 对象存储服务
私有化部署 如何用Docker Compose快速部署MinIO S3对象存储?本文详细拆解环境准备、配置文件编写及启动验证全流程,手把手指导你搭建私有化数据存储平台。支持Lobe-Chat、思源笔记等应用的S3兼容数据同步,确保高效安全的数据管理。
5
长上下文的副作用:模型安全护栏为何会失效
AI实验室 使用 DeepSeek 时发现长对话会削弱模型安全护栏,引用 Anthropic Many-shot Jailbreaking 研究,解释上下文学习如何覆盖安全训练,给出三条实用建议
随机文章 随机推荐

评论区

Profile Image of the Author
MoeWah
Hello, I'm MoeWah.
专题文章
分类
站点统计
文章
198
分类
9
标签
434
总字数
373,761
运行时长
0
最后活动
0 天前

目录