MinIO 新版本 Docker 部署指南:告别 Web 控制台,拥抱 CLI 管理
一、背景 安全事件:MinIO 安全漏洞(CVE-2025-62506), 漏洞说明: https://avd.aliyun.com/detail?id=AVD-2025-62506 建议升级到 RELEASE.2025-10-15T17-29-55Z 或更高版本。 二、新版本变动 
一、背景 安全事件:MinIO 安全漏洞(CVE-2025-62506), 漏洞说明: https://avd.aliyun.com/detail?id=AVD-2025-62506 建议升级到 RELEASE.2025-10-15T17-29-55Z 或更高版本。 二、新版本变动 
RELEASE.2025-10-15T17-29-55Z 或更高版本。
bucket以外的功能。👆上面的图是不是很干净😄开源社区版本分发调整:

# 阶段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}.
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
上面的容器都内置了
mc命令,使用一个 JSON 格式的配置文件来存储 某些类型的信息,比如为每个配置的 S3 兼容服务 设置的 别名。mc的配置文件也都持久化了,可直接使用,管理minio
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 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
# mc mb minio/srebro # 创建bucket# mc ls minio # 列出bucket# mc rb minio/srebro-test --force # 强制删除bucket,即使含有文件
# 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_KEYmc admin user add minio 11fz7gXVnNjvjEDq2qez jj6r9Hu2gtueIQFSV35FzKcvGtK1G61d9ieNmKDg #修改用户权限mc admin policy attach minio readwrite --user 11fz7gXVnNjvjEDq2qez
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>
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
mc 命令完成用户、策略、桶、版本化、ILM 等管理操作。RELEASE.2025-10-15T17-29-55Z 或更高版本;通过 Dockerfile 多阶段构建与 Docker Compose 可快速落地与运维。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online