当前位置: 首页 > news >正文

使用 Docker 快速部署 MinIO 文件存储服务

使用 Docker 快速部署 MinIO 文件存储服务

在日常开发中,文件管理(如图片、视频、日志、数据集等)常面临分散存储、安全性低、运维复杂等问题,传统文件存储方式易引发上传漏洞等风险。MinIO 作为一款高性能、轻量级的对象存储服务,兼容 Amazon S3 协议,可集中管理分散对象,减少暴露面并降低运维成本,是解决文件存储痛点的理想选择。

快速部署 MinIO(Docker 方式)

1. 拉取 MinIO 镜像

推荐使用指定稳定版本镜像(避免 latest 版本的兼容性问题):

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

版本号格式为 RELEASE.年-月-日T时-分-秒Z,可在 MinIO 官方镜像仓库 选择最新稳定版。

2. 启动 MinIO 容器

通过以下命令启动容器,实现数据持久化并映射端口:

docker run -d \--name minio-server \-p 9000:9000 \  # S3 兼容 API 端口(程序访问用)-p 9001:9001 \  # 管理控制台端口(Web 访问用)-v /home/admin/minio/data:/data \  # 挂载数据目录(持久化存储)-e "MINIO_ROOT_USER=adm1n" \  # 控制台登录用户名-e "MINIO_ROOT_PASSWORD=202019.Lvjin" \  # 控制台登录密码(生产环境建议复杂度更高)minio/minio server /data --console-address ":9001"  # 指定控制台监听端口

参数说明:

  • -d:后台运行容器;
  • --name:指定容器名称(便于后续管理);
  • -p 9000:9000:MinIO 的 S3 协议 API 端口,供程序(如客户端、编辑器)调用;
  • -p 9001:9001:Web 管理控制台端口,用于可视化操作(如创建桶、管理凭证);
  • -v:将宿主机目录 /home/admin/minio/data 挂载到容器内 /data,确保数据在容器重启后不丢失(需保证宿主机目录有读写权限);
  • -e:设置环境变量,指定管理员账号密码(生产环境需避免明文暴露)。

3. 访问 MinIO 控制台

启动成功后,通过浏览器访问 http://服务器IP:9001,使用上述 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 登录:
MinIO 控制台登录页

核心操作:创建存储桶与访问凭证

3.1 创建存储桶(图形化操作)

存储桶(Bucket)是 MinIO 中管理对象的基本单位,类似文件夹。以“微信 Markdown 编辑器图片存储”为例:

  1. 登录控制台后,点击左侧菜单栏 BucketsCreate Bucket
  2. 输入桶名(如 wechat-markdown,需小写、无特殊字符);
  3. 按需配置权限(如允许公开访问需开启 Public Access,否则默认私有);
  4. 点击 Create Bucket 完成创建。

创建存储桶

3.2 生成访问凭证(Access Token)

程序(如编辑器)需通过访问凭证调用 MinIO API,步骤如下:

  1. 控制台左侧菜单栏点击 Access KeysCreate access key
  2. 输入描述(如 wechat-markdown-token),点击 Create
  3. 生成后会自动下载 JSON 文件(包含 accessKeysecretKey),secretKey 仅此时可见,需妥善保存(丢失需重新创建)。

创建访问凭证
下载凭证 JSON

JSON 文件内容示例:

{"url": "http://服务器IP:9000",  // 注意:应为 S3 API 端口(9000),非控制台端口"accessKey": "j1duKbN0DbWeoqwt0yEJ",  // 访问密钥"secretKey": "5Le9Q2kv4r53w8SuR5cVOVzTQT5OdMKDRASagBzz",  // 密钥(仅首次可见)"api": "s3v4",  // 签名算法版本(推荐 s3v4)"path": "auto"  // 路径样式(auto 自动适配)
}

微信 Markdown 编辑器配置

将 MinIO 配置到编辑器,实现图片直传存储桶:

  1. 打开微信 Markdown 编辑器,找到“图床设置”→“S3 兼容存储”;
  2. 按以下说明填写参数:
    • Endpoint:MinIO 的 S3 API 地址(如 http://服务器IP:9000);
    • Bucket:已创建的存储桶名(如 wechat-markdown);
    • Access Key:JSON 文件中的 accessKey
    • Secret Key:JSON 文件中的 secretKey
    • 其他参数保持默认(如 API 版本选 s3v4)。

编辑器配置

测试:上传图片并验证

  1. 在编辑器中插入图片,选择“上传到图床”;
  2. 上传成功后,图片会自动存储到 MinIO 对应桶中:

上传测试
桶中文件

  1. 访问图片:通过 URL http://服务器IP:9000/桶名/文件名 可直接访问(需确保桶权限允许公开访问)。

访问图片

注意事项

  1. 数据安全
    • 生产环境中,MINIO_ROOT_PASSWORD 和访问凭证需使用强密码,并避免明文存储;
    • 重要文件的存储桶建议关闭公开访问,通过签名 URL 临时授权访问。
  2. 端口与网络
    • 若需外部访问,需确保服务器防火墙开放 9000(API)和 9001(控制台)端口;
    • 公网环境建议通过 HTTPS 访问(可配置 Nginx 反向代理并添加 SSL 证书)。
  3. 数据备份:定期备份挂载的 /home/admin/minio/data 目录,避免数据丢失。
  4. 性能优化:大文件场景可调整 MinIO 的纠删码模式(默认单节点单盘,生产建议多盘冗余)。
http://www.rkmt.cn/news/46843.html

相关文章:

  • AI智能体落地:Agent-Assist vs 全自动化完整决策指南
  • Python : argument name should be lowercase 警告处理解决方法
  • instanceof(类型)
  • 高级程序语言设计第5次
  • 25.11.11 spfa算法
  • CF2164E Journey 题解
  • 实用指南:[linux仓库]信号保存[进程信号肆]
  • v4l2_subdev和video_device区分
  • 2025年11月全日制艺考生文化课新推荐:聚焦全日制艺考生文化课培训/全日制艺考生文化课机构/核心考点攻坚与沉浸式教学
  • [随笔]关于意识形态
  • Luogu P4151 [WC2011] 最大XOR和路径 题解
  • 2025年11月磨床电主轴厂家新推荐:聚焦国产磨床主轴/进口磨床主轴/内圆磨床主轴/外圆磨床主轴测评!
  • 会员小程序
  • MySQL学习,详解分页查询(limit)
  • 英语_阅读_A new way to see the world:AR_待读
  • 2025篷房行业优选榜:华烨海特斯五星领跑 铝合金 / 装配式 / 工业篷房领域 4 家实力企业精准适配多场景
  • stm32使用SPI写W25Q32
  • docker - 1 安装
  • 最小二乘困难详解5:非线性最小二乘求解实例
  • ##题解##洛谷P1578##最大子矩形 扫描线法
  • 【Azure Developer】azd 安装最新版无法登录中国区问题二:本地Windows环境遇问题
  • Mac 下载 VMware 11.1.0-1.dmg 后如何安装?超简单教程(附安装包)
  • 在R中生成交互地图leaflet包
  • 重启 MariaDB 数据库服务
  • 重练算法(代码随想录版) day 7 -哈希表part2
  • 团队作业2——《需求规格说明书》
  • gmssl常用命令 - 需要持续更新
  • 实用指南:根据用户行为数据中的判断列表在 Elasticsearch 中训练 LTR 模型
  • 转转客服IM聊天系统背后的技术挑战和实践分享
  • 实验 5:ViT Swin Transformer