Docker建站(十九)MinIO:自建高可用对象存储

0、介绍

MinIO 是高性能的对象存储,是为海量数据存储、人工智能、大数据分析而设计的,它完全兼容 Amazon S3 接口,单个对象最大可达 5TB,适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 MinIO主要采用Golang语言实现,客户端与存储服务器之间采用 HTTP/HTTPS 通信协议。

查了很多资料发现 MinIO 最近一次升级改版很大,于是踩坑之后总结了一下部署经验。

1、前言

俱乐部发展一来,我似乎就一直在做私有化:

网盘自建,DNS 自建,CDN 自建……全部服务托管在自己的服务器上。

虽然说腾讯云 COS 实在好用,但是直接暴露 COS 迟早被刷爆,各大论坛都是先例;套个 CDN 访问费用可以减很多,但是腾讯云 CDN HTTPS 请求数计费正是我把服务迁出,自建 CDN 的原因之一。

那么我们也来自建一个 OSS 吧!

2、安装

由于我的集群是公网集群,不太能搞多点部署,以下都以单点部署为例。

如果你不在乎直接使用IP+端口访问,可以直接执行:

Bash
1
2
3
4
5
6
7
docker run -d \
    -p 8080:9000 -p 8090:9090 \ # 8080 8090 可替换为自己想要的端口 
    --name MinIO \
    -e "MINIO_ROOT_USER=username" \
    -e "MINIO_ROOT_PASSWORD=password" \
    -v /root/minio/data:/data \
    -v /root/minio/config:/root/.minio minio/minio server /data --console-address ":9000" -address ":9090"

如果你使用域名minio.example.com访问 API,使用console.example.com访问控制台;

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

如果你使用minio.example.com访问 API,使用minio.example.com/console/访问控制台:
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

如果你还想使用DNS-style的存储桶域名(例如:bucket-1.oss.example.com,正如现在大部分平台所使用的默认存储桶域名一样),可以指定域名:
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

把指令中的usernamepassword替换为根管理员账号密码,之后控制台就使用这个登录。

挂载目录/root/minio也可以替换为自己想要的目录。

如果使用域名,用 Nginx 反向代理一下,注意如果命令行中指定的 URL 使用了HTTPS,Nginx 依然使用 HTTP 访问 MinIO,但是需要配置 HTTPS 供访客访问,之后调用 API、访问控制台等操作都需要使用 HTTPS。

3、错误排查

登录时无论什么报错,大概率是 API 接口的问题,可以进入容器排查:

Bash
1
docker exec -it MinIO /bin/bash

curl一下你设置的 API 接口地址,一般就会出现和登录时提示的类似错误,一一解决即可。

4、挂载

MinIO 支持 S3 协议所以直接生成密钥,用 API 接口作为endpoint即可,但是如果你没有配置存储桶的DNS-style,挂载 Alist 等程序需要有更多步骤:

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

因为 MinIO 默认是https://域名/存储桶/文件格式的,启用DNS-style才是https://存储桶.存储桶域名/文件

Docker建站(十九)MinIO:自建高可用对象存储

https://blog.tsinbei.com/archives/1269/

文章作者
Hsukqi Lee
发布于

2023-06-04

修改于

2023-06-22

许可协议

CC BY-NC-ND 4.0

评论

昵称
邮箱
网址
6 条

X Wan

X Wan

反代後會出現403

  回复

Hsukqi Lee

Hsukqi Lee 作者

可能需要确认一下域名 Nginx 配置之类的

  回复

nana

nana

自建minio反向代理总是遇到签名问题,就很奇怪,官方的配置也不行

  回复

lmmoo

lmmoo

学习一下大佬的方法

  回复

JamYido

JamYido

你们的对象存储是不是就是用这个建的

  回复

Hsukqi Lee

Hsukqi Lee 作者

是的,MinIO性能还是很可以的

  回复