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

评论

昵称
邮箱
网址
2 条

lmmoo

lmmoo

学习一下大佬的方法

  回复

JamYido

JamYido

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

  回复

Hsukqi Lee

Hsukqi Lee 作者

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

  回复