news 2026/6/10 11:50:35

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 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_USER 和 MINIO_ROOT_PASSWORD 登录:

MinIO 控制台登录页

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

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

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

登录控制台后,点击左侧菜单栏 Buckets → Create Bucket;

输入桶名(如 wechat-markdown,需小写、无特殊字符);

按需配置权限(如允许公开访问需开启 Public Access,否则默认私有);

点击 Create Bucket 完成创建。

创建存储桶

3.2 生成访问凭证(Access Token)

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

控制台左侧菜单栏点击 Access Keys → Create access key;

输入描述(如 wechat-markdown-token),点击 Create;

生成后会自动下载 JSON 文件(包含 accessKey 和 secretKey),secretKey 仅此时可见,需妥善保存(丢失需重新创建)。

创建访问凭证

下载凭证 JSON

JSON 文件内容示例:

{

"url": "http://服务器IP:9000", // 注意:应为 S3 API 端口(9000),非控制台端口

"accessKey": "j1duKbN0DbWeoqwt0yEJ", // 访问密钥

"secretKey": "5Le9Q2kv4r53w8SuR5cVOVzTQT5OdMKDRASagBzz", // 密钥(仅首次可见)

"api": "s3v4", // 签名算法版本(推荐 s3v4)

"path": "auto" // 路径样式(auto 自动适配)

}

微信 Markdown 编辑器配置

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

打开微信 Markdown 编辑器,找到“图床设置”→“S3 兼容存储”;

按以下说明填写参数:

Endpoint:MinIO 的 S3 API 地址(如 http://服务器IP:9000);

Bucket:已创建的存储桶名(如 wechat-markdown);

Access Key:JSON 文件中的 accessKey;

Secret Key:JSON 文件中的 secretKey;

其他参数保持默认(如 API 版本选 s3v4)。

编辑器配置

测试:上传图片并验证

在编辑器中插入图片,选择“上传到图床”;

上传成功后,图片会自动存储到 MinIO 对应桶中:

上传测试

桶中文件

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

访问图片

注意事项

数据安全:

生产环境中,MINIO_ROOT_PASSWORD 和访问凭证需使用强密码,并避免明文存储;

重要文件的存储桶建议关闭公开访问,通过签名 URL 临时授权访问。

端口与网络:

若需外部访问,需确保服务器防火墙开放 9000(API)和 9001(控制台)端口;

公网环境建议通过 HTTPS 访问(可配置 Nginx 反向代理并添加 SSL 证书)。

数据备份:定期备份挂载的 /home/admin/minio/data 目录,避免数据丢失。

性能优化:大文件场景可调整 MinIO 的纠删码模式(默认单节点单盘,生产建议多盘冗余)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:03:04

系统流量突然增加了10倍,该怎么办?

1.先快速解决问题1.1 紧急扩容如果发现系统真的扛不住了,第一时间应该是扩容。现在云计算这么方便,扩容就是点几下鼠标的事。image为什么要先扩容?因为这是最快见效的方法。你可能需要5分钟分析代码,但扩容只需要1分钟。先保住系统…

作者头像 李华
网站建设 2026/6/9 22:57:46

三步搞定.NET Framework 3.5自动化部署:Windows系统管理员的救星

三步搞定.NET Framework 3.5自动化部署:Windows系统管理员的救星 【免费下载链接】.NETFramework3.5一键安装工具 本仓库提供了一个方便快捷的资源文件,用于一键安装.NET Framework 3.5。该工具适用于需要在Windows系统上快速部署.NET Framework 3.5的用…

作者头像 李华
网站建设 2026/6/9 7:03:49

腾讯开源视频生成新标杆:HunyuanVideo的技术突破与应用前景

腾讯开源视频生成新标杆:HunyuanVideo的技术突破与应用前景 【免费下载链接】HunyuanVideo-PromptRewrite 项目地址: https://ai.gitcode.com/hf_mirrors/tencent/HunyuanVideo-PromptRewrite 在视频生成技术快速发展的今天,腾讯最新开源的Hunyu…

作者头像 李华
网站建设 2026/6/3 3:36:33

19、Ubuntu服务器常见配置指南(上)

Ubuntu服务器常见配置指南(上) 在当今的服务器管理中,Ubuntu系统因其稳定性和易用性受到广泛青睐。本文将为你详细介绍Ubuntu服务器中邮件服务器、OpenSSH服务器以及DHCP服务器的常见配置方法。 1. 邮件服务器配置 1.1 二级邮件服务器设置 若要为 example.org 和 exa…

作者头像 李华
网站建设 2026/6/8 13:22:03

17、网络操作与文件搜索全解析

网络操作与文件搜索全解析 在网络环境中,我们常常需要查看网络路由表、传输文件、安全地与远程主机通信以及搜索文件。下面将详细介绍这些操作及其相关工具。 查看网络路由表 使用 netstat 命令的 -r 选项可以显示内核的网络路由表,它展示了网络如何配置以在不同网络之…

作者头像 李华
网站建设 2026/6/10 9:45:47

我如何使用 Claude Code 的每个功能

我几乎每天都在使用 Claude Code。在个人项目中,我每周会在虚拟机里运行它多次,经常配合 --dangerously-skip-permissions,以“随心编码(vibe code)”的方式快速把脑中的点子落地。工作中,我们团队的一部分…

作者头像 李华