在 VPS.Town 上使用 Docker 部署 MinIO 个人图床完全指南
本文由用户 听风 撰写,并已加入 VPS.Town 优秀原创文章激励计划,本站享有完整版权,未经允许不得转载。
本文已通过 VPS.Town 社区文章投稿及奖励规则 (试行稿) 审核,并获得 现金 50 元 奖励。
前言
MinIO 是一种开源的大型、高性能、分布式对象存储服务,可以作为个人网盘、图床的通用基座。需要注意的是,MinIO 虽然有着非常好的优化,但如果只是作为个人图床使用,我们更推荐 Lsky 这类的轻量图床应用。
本教程适用于 Debian 12 系统,其他 Linux 发行版可能需要调整部分命令。
准备工作
购买 VPS
- 最多可提供高达 8TB 大容量存储 的选项,随时随地为您的图床安个新家;
- 同时提供 SSD & HDD 混合方案,读写速度更快、上传图片更稳定;
- 完善的 7/12 售后保障,支持随时灵活升级配置、支持 7 天内有理由退款;
- 可在香港抗下 DMCA 版权投诉,分享图床更安全;
- 服务器位于香港,距离大陆近,对于移动用户更加友好
无 AFF 购买链接:点我一键直达
安装 Docker
如果已安装 Docker,则可以跳过这一步,您可以使用 docker -v 命令检查是否已安装。
Debian 12 系统可直接复制以下命令安装 docker、docker-compose,其它系统请参见 Docker 官方文档。
Docker 安装 MinIO
首先创建并进入你的安装目录,编辑 docker-compose.yaml,这里我的目录是 /root/minio
将以下内容输入后,按下 esc :x 保存,输入 docker compose up -d 启动
请务必修改默认的用户名和密码,使用强密码增强安全性。同时确保将 yourdomain 替换为你实际使用的域名。
配置反向代理和 Cloudflare 加速
不出意外的话,你已经可以通过 ip:端口号 的方式访问 MinIO 的管理面板了,但考虑到存储服务的公开性,我强烈建议开启反向代理并启用 Cloudflare 加速,这里我使用 nginx proxy manager 配置反向代理,npm 的具体安装方式请参照官方文档。
配置 nginx 你首先需要一个域名,以 Cloudflare 为例,添加如下的 DNS 解析,注意开启小黄云。

Cloudflare 的"小黄云"是指开启了 Cloudflare 代理服务,它能为你的服务提供额外的安全防护和性能优化。
由于 Cloudflare 代理会修改请求头,导致 MinIO 的鉴权出现问题,并且缓存对象存储违反了 Cloudflare 的用户协议,我们需要关闭该子域名的缓存。

在 缓存 - Cache Rules 下创建一条新的规则如下

现在,我们进入 npm 的管理面板进行配置,请尽量按照我的配置方式,避免不必要的折腾。
由于 MinIO 同 nginx 的适配非常烂,如果要关闭小黄云可能需要另外的 nginx 配置。所以建议 开启小黄云+绕过缓存。


点设置按钮,填入以下信息:

务必开启 SSL。
配置 MinIO 存储桶
现在你应该可以访问 https://minio.yourdomain/minio/ui,输入你在 docker-compose.yaml 中填写的用户名和密码登录到 MinIO 的后台。
点击 Create a Bucket 创建一个新的存储桶。

这里以 img 为例,下面三个选项一般无需勾选。

创建好桶后第一步是配置权限,首先将匿名用户的对根路径的权限设为 read only。

刷新页面后,手动调整关闭匿名用户的 s3:ListBucket 权限,避免被刷目录,删除红框中标记的行,及上一行结尾的逗号,并保存。

关闭 s3:ListBucket 权限是为了防止他人浏览你的存储桶中的所有文件,这是一个重要的安全措施。
现在,你可以点击右上角的文件夹图标,进入 img 存储桶的根目录,上传一张照片,并测试他的预览和加载功能是否正常。

同时,开启一个浏览器的匿名窗口,使用以下格式的直链测试外部访问,请注意将域名和路径替换为你自己的。

如果能够正常打开,恭喜你,你的图床已经可用了。
PicGo 连接图床上传图片
PicGo 是一个非常实用的 Markdown 图片上传软件,为了能够连接你搭建的 MinIO 图床,你需要为存储桶配置密钥,密钥在创建后只会显示一次,请妥善保存。

同时,你还要为 PicGo 安装一个插件。

接下来配置这个插件。注意将端口设为 443 并勾选 useSSL

bucket 是你存储桶的名称,基础目录 可任意填写,自定义域名 建议手动填写,否则图片链接会添加 443 端口,不太美观,归档 建议开启。

在 上传区 将默认图床修改为 MinIO图床,拖动并上传文件测试。

测试图床

图片可以正常加载,至此为止,搭建完成。
MinIO 的其他用途
除了作为图床使用外,MinIO 还可以用作:
- 个人网盘系统
- 网站静态资源存储
- 应用程序的对象存储后端
- 备份存储解决方案
你可以根据自己的需求进一步探索 MinIO 的高级功能。
