MinIO 是具備 Amazon S3 相容 API 的物件儲存系統。
僅需在 docker-compose.yml 中撰寫幾行程式碼,便能啟動 S3 相容的儲存系統,因而在本地開發環境中被廣泛用作 S3 模擬器。DockerHub 的累計下載數已超過 10 億次。
MinIO 的 OSS 版本於 2025 年 10 月停止 Docker 映像的發佈,並於 2026 年 2 月將 GitHub 存儲庫歸檔。官方的維護已完全結束。
由於日本語的相關資訊仍然較少,這篇文章將結合英語圈的資訊,按時間順序整理發生的事件,並介紹替代方案的候選者。
MinIO 是具備 Amazon S3 相容 API 的開源物件儲存系統。
主要特點如下:
特別是在開發環境中被廣泛使用的「生產環境使用 AWS S3,地方環境使用 MinIO」的架構,廣受採用。僅需在 docker-compose.yml 中撰寫幾行程式碼,就能輕易獲得 S3 相容的儲存,這是其受歡迎的原因之一。
MinIO OSS 版的結束並非突如其來的事件,自 2021 年起便已逐步進行。
| 時期 | 事件 |
|---|---|
| 2021年5月 | 將授權由 Apache 2.0 變更為 AGPL v3 |
| 2022〜2023年 | 與 Nutanix、Weka 之間因授權違反產生對立 |
| 2025年5月 | 從原始碼中刪除管理控制台(WebUI) |
| 2025年10月15日 | 發佈安全修正版本(RELEASE.2025-10-15...) |
| 2025年10月16日 | CVE(漏洞)資訊公開,但官方未發佈修正過的 Docker 映像 |
| 2025年10月下旬 | 停止在 DockerHub 和 Quay.io 提供官方映像。 換言之「轉為僅提供源碼的分發」 |
| 2025年12月3日 | 將存儲庫轉為「維護模式」 |
| 2026年2月12日 | 在 README 中明確標示「不再維護」 |
| 2026年2月13日 | 將存儲庫歸檔(維護完全結束) |
在 2025 年 5 月時,管理控制台從原始碼中被刪除,這顯示了「便利的功能只在付費版中提供」的方向。
決定性轉折發生在 2025 年 10 月中旬至下旬。安全修正版本發佈後緊接著,便轉向停止 Docker 映像的分發。
Docker 映像的停止發佈本身作為 OSS 項目上的決策,可以理解。然而,其 進行方式 收藏了許多批評。
停止發佈的通知是在事後發佈的。安全修正版本發佈時突然進行,並未給用戶準備的餘地。
雖然 CVE 被公佈,但官方沒有發佈修正過的 Docker 映像。現有用戶被迫在繼續使用脆弱版本或自己從源碼中編譯之間做出選擇。
對於已將 Watchtower 等工具納入運行流程的用戶而言,映像停止發佈意味著運行流程被打斷。
針對 GitHub Issue 的查詢,MinIO 的維護者如是回答:
This project is a source only distribution now, if you want to build containers you need to build them yourselves.
(這個項目已轉為僅提供原始碼的發佈。如果您需要容器,請自行編譯。)
對於使用了超過 10 億次下載的 Docker 映像的用戶來說,這樣的答案顯然不夠充分。
許多人可能仍在使用 MinIO 作為本地開發的 S3 模擬器。我們來梳理「這對我有關係嗎?」這個問題。
現在並不會立刻失效。 如果本地已有快取的映像,則在可預見的未來還可以繼續使用。
不過 CVE(漏洞)的風險並非零。儘管公開的風險較低,但在開發裝置內可能出現的認證資訊洩露等情況仍然可造成影響。
更現實的風險是 無法獲取 Docker 映像。實際上,Docker Hub 上的 RELEASE.2025-10-15T17-29-55Z 標籤已經無法取得。latest 標籤截至 2025 年 9 月的版本也已停止更新(截至 2026 年 2 月)。
這意味著「未來可能無法拉取(pull)」的情況已不是假設, 目前已經有部分標籤無法獲取。在新成員環境設置或 CI 重構時,docker compose up 可能會失敗。
針對 Docker 映像停止分發的報告 Issue #21647 已被提出,維護者的答覆收到了 超過 200 次的負評(👎)。
討論已失去控制,最終該 Issue 被鎖定。
用戶們表達了如下聲音:
在此情況下,出現了 pgsty/minio 這個社群 Fork。
該專案由 PostgreSQL 發行版「Pigsty」的開發者主導,並進行了如下行動:
docker pull pgsty/minio)根據 AGPL v3 授權發佈的代碼,擁有被 Fork 的權利。諷刺的是,MinIO 自身選擇的授權方式,使社群的延續成為可能。
作為從 MinIO 遷移的選擇,提供了幾個選項。
| 選擇 | 概要 | 適用情境 |
|---|---|---|
| pgsty/minio | 社群 Fork。已恢復管理控制台。可透過docker pull pgsty/minio使用 |
希望將從 MinIO 遷移成本降到最低的場合 |
| LocalStack | AWS 服務(包括 S3)的本地模擬器。除了 S3 也支援 SQS、Lambda 等 | 將來希望在本地使用 S3 以外的 AWS 服務的情況 |
| Garage | 輕量級 S3 相容的分散式儲存 | 需要簡單的 S3 相容儲存的情況 |
| SeaweedFS | 高吞吐量的分散式檔案系統。具 S3 相容 API | 需要大量資料或高效能的情況 |
| 自行編譯 | 從 MinIO 的原始碼中建立 Docker 映像 | 不想改變現有架構但能夠承擔維護成本的情況 |
只需替換現有 docker-compose.yml 的映像名稱即可遷移。
services:
minio:
# 變更前: image: minio/minio:RELEASE.2025-07-23T15-54-02Z
image: pgsty/minio
command: server /data --console-address ":9001"
ports:
- "9000:9000"
- "9001:9001"
這是最簡單的變更方式,因此作為最近的應對措施最為便利。
如果預計將來使用 S3 以外的 AWS 服務,轉用 LocalStack 是個可行的選擇。
services:
localstack:
image: localstack/localstack:3.0
ports:
- "4566:4566"
environment:
- SERVICES=s3
- PERSISTENCE=1
- AWS_DEFAULT_REGION=ap-northeast-1
但需注意的是,在生成簽名的 URL 時,容器內與瀏覽器的存取路徑可能不同,可能需要針對 S3 客戶端與 Presigned URL 客戶端區分端點。
更詳細的遷移步驟,可以參考文獻中提到的 Zenn 文章。
即使是 DockerHub 上下載超過 10 億次的 Docker 映像,有時候也會在沒有事前通知的情況下停止分發。這次事件正是對此的強烈提示。
因為我自己在專案中也使用過,所以我會重新思考使用方向。
株式会社シンシア 招募實務未經驗的工程師及學生實習生,與我們一起工作。
※ 有關在シンシア的工作情況請見此處。
我們每年都收到超過 100 位實務未經驗者的應徵並進行技術面試。
如果您認為這篇文章有所收穫,能夠參考我們的故事會非常感激!