MinIO 新版本 Docker 部署指南:告别 Web 控制台,拥抱 CLI 管理

MinIO 新版本 Docker 部署指南:告别 Web 控制台,拥抱 CLI 管理

一、背景

  • 安全事件:MinIO 安全漏洞(CVE-2025-62506), 漏洞说明: https://avd.aliyun.com/detail?id=AVD-2025-62506
  • 建议升级到 RELEASE.2025-10-15T17-29-55Z 或更高版本。

二、新版本变动

  • Web 控制台功能阉割:
    • 开源社区版本,内置 Web 管理界面不再提供除了创建bucket以外的功能。👆上面的图是不是很干净😄
    • 官方不再提供Docker镜像与预编译二进制,需要自行从源码编译并封装镜像。
    • 推荐部署路径:源码构建 + 自制 Docker 镜像 + Docker Compose 编排。
    • issues: https://github.com/minio/minio/issues/21647

开源社区版本分发调整:

三、自己动手封装镜像

  • 实现方式:多阶段构建,第一阶段拉源并编译成二进制文件,第二阶段生成最小运行镜像。
  • 参考官方提供的 Dockerfile: https://github.com/minio/minio/blob/master/Dockerfile
# 阶段1:依赖下载层 FROM golang:1.24.11-alpine3.23 AS builder # 定义MINIO版本 ARG MINIO_VERSION=RELEASE.2025-10-15T17-29-55Z WORKDIR /app # 下载minio并构建二进制文件 RUN wget https://github.com/minio/minio/archive/refs/tags/${MINIO_VERSION}.tar.gz \ && tar -zxvf ${MINIO_VERSION}.tar.gz \ && rm -rf ${MINIO_VERSION}.tar.gz \ && export GOPROXY=https://mirrors.cloud.tencent.com/go/ \ && cd minio-${MINIO_VERSION} \ && go mod tidy \ && go build # 阶段2:生成最终镜像 #官方的 minio 镜像自带了 mc 命令 FROM minio/minio:latest # 定义MINIO版本 ARG MINIO_VERSION=RELEASE.2025-10-15T17-29-55Z COPY --from=builder /app/minio-${MINIO_VERSION}/minio /usr/bin/minio COPY --from=builder /app/minio-${MINIO_VERSION}/dockerscripts/docker-entrypoint.sh /usr/bin/docker-entrypoint.sh RUN chmod -R 777 /usr/bin && chmod +x /usr/bin/docker-entrypoint.sh ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] VOLUME ["/data"] CMD ["minio"] 
  • 构建命令:
MINIO_VERSION=RELEASE.2025-10-15T17-29-55Z docker build -t minio:${MINIO_VERSION} --build-arg MINIO_VERSION=${MINIO_VERSION}.

四、使用 Docker Compose 快速运行MinIO

  • 目标:配置环境变量、数据卷与健康检查,快速启动单实例。
  • 初始化: 运行了一个 minio-init 容器,用于 minio 的初始化,创建桶等一些操作。
  • ⚠️注意:需要先创建一个 srebro 的docker 网桥;凭证使用 MINIO_ROOT_USER/MINIO_ROOT_PASSWORD
#创建docker 自定义网桥 docker network create -d bridge --subnet "10.22.33.0/24" --gateway "10.22.33.1" srebro 
version:"3.8"services:minio:image: docker.cnb.cool/srebro/docker-images/minio:RELEASE.2025-10-15T17-29-55Z #CNB镜像托管了一个# 如果本地构建镜像,用 build 指令替代 image:# build:# context: .# dockerfile: Dockerfilecontainer_name: minio networks:- srebro ports:- 9000:9000- 9001:9001volumes:- /home/application/Middleware/minio/data:/data #挂载 minio 数据盘- /home/application/Middleware/minio/mc-config:/tmp/.mc:rw #持久化 mc 配置文件- /etc/localtime:/etc/localtime:ro - /usr/share/zoneinfo:/usr/share/zoneinfo:ro environment:MINIO_ROOT_USER: srebro MINIO_ROOT_PASSWORD:'password'TZ: Asia/Shanghai command: server /data --console-address :9001healthcheck:# 健康检查确保初始化服务在MinIO就绪后运行test:["CMD","curl","-f","http://localhost:9000/minio/health/live"]interval: 10s timeout: 5s retries:10restart: unless-stopped minio-init:image: docker.cnb.cool/srebro/docker-images/minio:RELEASE.2025-10-15T17-29-55Z container_name: minio-init depends_on:minio:condition: service_healthy # 依赖MinIO健康状态networks:- srebro volumes:- /home/application/Middleware/minio/mc-config:/tmp/.mc:rw entrypoint:> /bin/sh -c " /usr/bin/mc alias set minio http://minio:9000 srebro 'password'; /usr/bin/mc mb minio/srebro; /usr/bin/mc ls minio; exit 0; "networks:srebro:external:true
  • 启动与查看:
docker compose up -d docker compose psdocker compose logs -f minio 

五、Web 控制台阉割功能的替代:使用 mc 命令

上面的容器都内置了 mc命令,使用一个 JSON 格式的配置文件来存储 某些类型的信息,比如为每个配置的 S3 兼容服务 设置的 别名。 mc 的配置文件也都持久化了,可直接使用,管理 minio
  • 登陆容器,运行 mc 命令
docker exec -it minio bash mc --version mc version RELEASE.2025-08-13T08-35-41Z (commit-id=7394ce0dd2a80935aded936b09fa12cbb3cb8096) Runtime: go1.24.6 linux/amd64 Copyright (c) 2015-2025 MinIO, Inc. License GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html> 
  • 查看mc 配置
mc alias ls gcs URL : https://storage.googleapis.com AccessKey : YOUR-ACCESS-KEY-HERE SecretKey : YOUR-SECRET-KEY-HERE API : S3v2 Path : dns Src : /tmp/.mc/config.json local URL : http://localhost:9000 AccessKey : SecretKey : API : Path : auto Src : /tmp/.mc/config.json minio URL : http://minio:9000 AccessKey : srebro SecretKey : password API : s3v4 Path : auto Src : /tmp/.mc/config.json s3 URL : https://s3.amazonaws.com AccessKey : YOUR-ACCESS-KEY-HERE SecretKey : YOUR-SECRET-KEY-HERE API : S3v4 Path : dns Src : /tmp/.mc/config.json 
  • bucket 管理:
# mc mb minio/srebro # 创建bucket# mc ls minio # 列出bucket# mc rb minio/srebro-test --force # 强制删除bucket,即使含有文件
  • object 文件管理:
# echo "This is my test file!" > srebro.txt# mc cp srebro.txt minio/srebro/srebro.txt # 上传测试文件# mkdir testdir # 创建测试目录# echo "This is my test02 file!" > testdir/test02.txt# mc cp testdir minio/srebro --recursive # 上传测试目录,且递归上传该目录下的所有文件# mc ls minio/srebro # 查看minio存储# mkdir download# mc cp minio/srebro/test01.txt download/ # 下载文件# mc cp minio/srebro/testdir download/ --recursive # 下载目录,且递归下载# mc rm minio/srebro/test01.txt # 删除文件# mc rm minio/srebro/testdir --recursive --force # 删除目录,即使包含文件# mc ls minio/srebro # 查看minio存储
  • 桶匿名策略(公开/私有):
mc anonymous set public minio/srebro mc anonymous set private minio/srebro 
  • 创建 ACCESS_KEY 和 SECRET_KEY:
#创建 ACCESS_KEY 和 SECRET_KEYmc admin user add minio 11fz7gXVnNjvjEDq2qez jj6r9Hu2gtueIQFSV35FzKcvGtK1G61d9ieNmKDg #修改用户权限mc admin policy attach minio readwrite --user 11fz7gXVnNjvjEDq2qez 

六、MinIO 对象生命周期管理(ILM)配置说明

概念:

  • MinIO 的对象生命周期管理(Object Lifecycle Management, ILM)是一项自动化策略引擎,用于根据用户定义的规则自动管理对象的存储状态,包括过期删除、存储类转换(降本)、版本清理等。其核心目标是简化数据全生命周期的成本控制和合规性管理,尤其适用于海量数据存储场景。
  • 规则按桶与前缀匹配,控制对象过期与非当前版本(启用版本化后)的清理。

基础规则示例:

  • logs/ 前缀下对象在 30 天后过期
mc ilm rule add minio/srebro \ --prefix "logs/" \ --expiry-days 30 
  • logs/ 前缀下对象在 30 天后过期,非当前版本 7 天清理:
mc ilm rule add minio/srebro \ --prefix "logs/"\ --expiry-days 30\ --noncurrent-expire-days 7
  • 查看与删除规则:
mc ilm rule ls minio/srebro mc ilm rule rm minio/srebro --id <rule-id>
  • 按 JSON 导入(便于审计与版本管理):
cat> ilm.json <<'EOF' { "Rules": [ { "ID": "expire-logs-30d", "Status": "Enabled", "Filter": { "Prefix": "logs/" }, "Expiration": { "Days": 30 }, "NoncurrentVersionExpiration": { "NoncurrentDays": 7 } } ] } EOFmc ilm import minio/srebro ilm.json mc ilm export minio/srebro 

七、总结

  • 新版本不再提供 Docker 镜像和预编译好的二进制文件,需要大家自行编译与封装镜像。
  • Web 控制台功能阉割后,可用 mc 命令完成用户、策略、桶、版本化、ILM 等管理操作。
  • 因 CVE-2025-62506,应尽快升级到 RELEASE.2025-10-15T17-29-55Z 或更高版本;通过 Dockerfile 多阶段构建与 Docker Compose 可快速落地与运维。
  • 本文所涉及的文件,都可以在 https://cnb.cool/srebro/docker-images/-/tree/main/Middleware/minio 上面浏览到,方便大家查阅。

八、参考

  • https://www.cnblogs.com/karl-python/p/19455192
  • https://github.com/minio/minio/issues/21647
  • https://docs.min.io/enterprise/aistor-object-store/

Read more

【Agent】Claude code辅助verilog编程

【Agent】Claude code辅助verilog编程

摘要:在 2026 年,硬件描述语言(HDL)的开发门槛正在被 AI 重新定义。本文记录了一次硬核挑战:在不查阅任何寄存器手册、不手画状态转移图的情况下,仅凭 Claude Code 辅助,完成了一个包含 UART 通信、协议解析(FSM)及 PWM 控制的完整 FPGA 模块设计与验证。这是一次关于“AI 辅助芯片设计”的真实压力测试。 目录 1. 引言:Verilog 开发者的“中年危机” 2. 项目挑战:从串口到 LED 的全链路设计 3. 开发实录:Claude Code 的 RTL 设计能力 * 3.1

一文讲清楚RAG 四大模式:Naive RAG、Advanced RAG、Modular RAG 与 Agentic RAG

一文讲清楚RAG 四大模式:Naive RAG、Advanced RAG、Modular RAG 与 Agentic RAG

随着技术迭代,RAG 已从最初的简单架构发展出多种进阶形态。本文将系统解析 RAG 的四大主流模式 ——Naive RAG、Advanced RAG、Modular RAG 与 Agentic RAG,从工作原理、技术特点到适用场景进行全方位对比,为技术选型提供参考。 一、RAG 基础:检索增强生成的核心逻辑 在深入模式解析前,需先明确 RAG 的核心逻辑。简单来说,RAG 由检索(Retrieval) 与生成(Generation) 两大模块构成: 检索模块:从预设知识库中精准定位与用户问题相关的信息片段(如文档、段落、句子); 生成模块:基于检索到的信息,结合大语言模型生成符合上下文、逻辑连贯的答案。 这种 “先检索再生成” 的模式,既保留了 LLM 的语言理解与生成能力,又通过外部知识的引入弥补了模型训练数据过时、事实准确性不足的缺陷。

Flutter 三方库 modular_core 大型应用级鸿蒙微服务化架构适配解析:纵深拆解路由控制组件化隔离网格,利用轻量级依赖注入中枢斩断应用深层耦合羁绊-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 modular_core 大型应用级鸿蒙微服务化架构适配解析:纵深拆解路由控制组件化隔离网格,利用轻量级依赖注入中枢斩断应用深层耦合羁绊-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 modular_core 大型应用级鸿蒙微服务化架构适配解析:纵深拆解路由控制组件化隔离网格,利用轻量级依赖注入中枢斩断应用深层耦合羁绊 在构建超大型、多业务线的鸿蒙应用时,代码的模块化分层与解耦是决定项目成败的关键。modular_core 作为 flutter_modular 的核心逻辑库,提供了一套纯粹的依赖注入(DI)和模块生命周期管理机制。本文将深入解析该库在 OpenHarmony 上的适配与应用实践。 前言 什么是 modular_core?它不是一个 UI 框架,而是一套管理“对象如何创建”和“模块如何组织”的底层协议。在鸿蒙操作系统这种强调模块化分发(HAP/HSP)和细粒度原子化服务的生态中,利用 modular_core 可以帮助开发者构建出高内聚、低耦合的系统底座。本文将指导你如何在鸿蒙端侧实现模块的动态注入与回收。 一、

论文阅读“OmniXtreme: Breaking the Generality Barrier in High-Dynamic Humanoid Control“

目录 * 一、论文核心定位与研究背景 * 1. 核心研究目标 * 2. 行业现状与核心痛点 * 3. 相关工作的局限性 * 二、OmniXtreme核心技术框架 * 第一阶段:基于流匹配的可扩展预训练 * 第二阶段:驱动感知的残差RL后训练精调 * 部署端工程优化 * 三、实验验证与核心结果 * 1. 实验基础设置 * 2. 核心实验结论 * (1)可扩展的高保真跟踪能力(核心性能验证) * (2)打破保真度-可扩展性权衡 * (3)模型容量缩放的优势 * (4)消融实验:各模块的必要性验证 * (5)定性能力验证 * 四、论文核心贡献 * 五、局限性与未来研究方向 * 六、行业价值与影响 摘要 High-fidelity motion tracking serves as the ultimate litmus test