minio是对象存储 的。类似一个网盘,大家可以想象成一个开源的百度网盘。
对象存储可以理解为,普通的存储,区别就是 我们放进去的文件,没有路径这些概念,我们只通过文件的ID 来取,先这样简单理解就行了,不用太过的照搬概念。
docker-compose 方式在最后:
首先
Minio 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,
非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,
而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
Minio是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
接下来我们进行minio单机部署
这里我们选择 docker 安装 (简单方便)
https://min.io/docs/minio/container/index.html
没有安装docker 的可以参考: 连接
1-下载 minio
使用docker安装MINIO
docker search minio
docker pull minio/minio
2-运行 : 路径不用单独创建
docker run -p 9000:9000 -p 9090:9090 \
--name minio1 \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=admin123" \
-v /data/minio/data:/data \
minio/minio server \
/data --console-address ":9090" -address ":9000"
更改密码:
k.123A
4-访问:
http://10.0.0.241:9090/login
4- 使用 minio
创建 一个buckets
minio创建Service Accounts
xVQEZ1umh6uzbzWjWzxm
Z7xgHASRK4Tiehmp2yUBUnlRMshnPSzRdMPz9DXd
注意:保存好 Access Key 和 Sectet Key 的值,后续需要使用到。
到此,我们的 minio 已经搭建完成。
miniO集群 搭建参考:https://www.cnblogs.com/jiaxzeng/p/16206474.html
docker-compose方式:
version: "3.5"
services:
minio:
image: registry.cn-hangzhou.aliyuncs.com/baimeidashu/minio:minio-RELEASE.2025-07-18T21-56-31Z-cpuv1
container_name: minio
privileged: true
restart: always
ports:
# API接口访问端口
- 9000:9000
# Web管理访问端口
- 9001:9001
environment:
# Web管理用户名
MINIO_ROOT_USER: minio
#Web管理密码
MINIO_ROOT_PASSWORD: miniominio
volumes:
# 文件目录映射
- ./data:/data
# 启动minio容器服务执行命令
# 必须指定固定端口:Web管理后台是动态端口 /data参数是容器内部数据目录
command: server /data --console-address ":9001"
访问:ip : 9001
发现不能创建 用户,很奇怪
新版 MinIO 的 Web 界面确实移除了一些旧版的功能,包括直接在 UI 上创建用户的功能。这是出于安全性和权限管理的考虑
新版 MinIO 的 Web 界面确实移除了一些旧版的功能,包括直接在 UI 上创建用户的功能。这是出于安全性和权限管理的考虑。以下是详细说明和替代方案:
---
## 📌 为什么新版 MinIO Web 界面不能创建用户?
1. **权限分离原则**:
- 新版 MinIO 更强调安全和权限分离,普通用户(即使是管理员)无法通过 UI 直接创建用户。
- 用户管理必须通过命令行工具(`mc`)或 REST API 完成。
2. **Web 界面简化**:
- 新版 UI 主要用于对象存储操作(如上传、下载、查看 Bucket 内容等)。
- 用户和策略管理被转移到命令行和 API。
3. **安全考虑**:
- 避免通过 Web 界面暴露过多管理功能,减少攻击面。
---
## ✅ 替代方案:使用 `mc` 命令行工具创建用户
### 1. 添加 MinIO 服务别名:
```bash
mc alias set myminio http://localhost:9000 MINIO_ROOT_USER MINIO_ROOT_PASSWORD
```
### 2. 创建用户:
```bash
mc admin user add myminio newuser newuser123
```
### 3. 为用户分配策略(例如 readwrite):
```bash
mc admin policy set myminio readwrite user=newuser
```
---
## ✅ 使用 REST API 创建用户(高级用法)
如果你需要通过程序化方式管理用户,可以调用 MinIO 的 Admin API:
### 示例(使用 curl):
```bash
curl -X POST \
"http://localhost:9000/minio/admin/v3/add-user?accessKey=newuser" \
-H "Authorization: AWS4-HMAC-SHA256 ..." \
-H "Content-Type: application/json" \
-d '{"secretKey":"newuser123","status":"enabled","policy":"readwrite"}'
```
> ⚠️ 注意:API 调用需要签名(Signed Request),推荐使用 SDK 或 `mc` 工具。
---
## ✅ 查看和管理已有用户
### 列出所有用户:
```bash
mc admin user list myminio
```
### 查看用户详细信息:
```bash
mc admin user info myminio newuser
```
### 删除用户:
```bash
mc admin user remove myminio newuser
```
---
## 🧩 自定义策略(可选)
你可以为用户分配更精细的权限:
### 1. 创建自定义策略文件(如 `mypolicy.json`):
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
```
### 2. 添加策略到 MinIO:
```bash
mc admin policy add myminio mypolicy mypolicy.json
```
### 3. 绑定策略到用户:
```bash
mc admin policy set myminio mypolicy user=newuser
```
---
## 📌 总结
| 操作 | 方法 |
|------|------|
| 创建用户 | `mc admin user add ...` |
| 分配权限 | `mc admin policy set ...` |
| 查看用户 | `mc admin user list ...` |
| 删除用户 | `mc admin user remove ...` |
| 自定义策略 | `mc admin policy add ...` |
---
如需进一步了解,请参考 MinIO 官方文档:
🔗 [MinIO Admin API 文档](https://min.io/docs/minio/linux/reference/minio-mc-admin.html)
🔗 [MinIO 用户管理指南](https://min.io/docs/minio/linux/administration/identity-management.html)
欢迎来撩 : 汇总all