本文发布于927天前,最后更新于443天前,其中的信息可能有所发展或是发生改变。如有疑问请联系邮箱:admin@yemengstar.com。
1.前言
MinIO让我们每个人都可以拥有自己的对象存储空间!
官方地址:MinIO | 高性能, Kubernetes 原生对象存储
官方给出的描述如下:
MinIO 提供高性能、与S3 兼容的对象存储系统,让你自己能够构建自己的云储存服务。
MinIO原生支持 Kubernetes,它可用于每个独立的公共云、每个 Kubernetes 发行版、私有云和边缘的对象存储套件。
MinIO是软件定义的,不需要购买其他任何硬件,在 GNU AGPL v3 下是 100% 开源的。
详见:【docker】兰空图床
2.安装docker
这里夜梦使用雨云的云服务器,系统为ubuntu22.04。安装docker如下:
snap install docker
如果报错提示snap版本过低,可以使用如下代码更新snap:
snap refresh
然后再安装docker即可!
3.安装MinIO
3.1docker安装
安装过程
搜索镜像
docker search minio
拉取镜像
docker pull minio/minio
运行:
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
--name minio1 \
-v /home/minio/data:/data \
-e "MINIO_ROOT_USER=YourName" \
-e "MINIO_ROOT_PASSWORD=YourPassword" \
minio/minio server /data --console-address ":9001"
大家根据自己的需求修改上面的管理员账号密码!
然后就可以访问IP:9001就可以进入控制台了!
如果有安全组的话记得放行安全组!
3.2docker-compose安装(推荐)
mkdir minio
cd minio
vim docker-compose.yaml
填入一下内容
version: '3.7'
services:
server:
image: quay.io/minio/minio:RELEASE.2023-06-19T19-52-50Z #GitHub最新镜像
command: server --console-address ":9001" /data
environment:
MINIO_ROOT_USER: user #管理员用户名
MINIO_ROOT_PASSWORD: password #管理员密码
MINIO_BROWSER_REDIRECT_URL: http://localhost:9001 #管理平台地址
MINIO_SERVER_URL: http://localhost:9000 #文件分享地址
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
volumes:
- data:/data
ports:
- "9000:9000"
- "9001:9001"
volumes:
data:
如果设置了分享域名,则一定要进行反向代理才可以登录!
然后:
docker compose up -d
4.创建存储桶
创建完成后长下面这样:
创建过程很简单,比腾讯云阿里云之类的简单很多。
左侧找到bucket
直接create bucket就好了!
名字随便写,别的不用管。
然后就可以看到自己创建的存储桶了!
5.与兰空图床连接
我们要现在minio中创建一个access key:
请注意,secret key只会在这里出现一次,如果忘记了只能重置!
然后就可以看到自己的access key了!
6.兰空图床储存策略设置
请注意,这里是使用IP进行访问的,访问端口是9001!
访问域名
访问图像格式为:你的IP:端口/存储桶名称/图像路径
例如:http(s)://yourIP/bucketname/666.png
AccessKey
上面创建好的。
SecretKey
上面创建好的。
连接地址
连接地址的格式为:你的IP:9000/你的存储桶名字
区域
us-east-1
存储桶名称
上面创建好的。
7.后记
到此你的对象存储就搭建完成了,你可以上传一张图像试试哦!
MinIO不仅可以用于兰空图床,别的地方也都可以用!大家可以自行探索!
8.反向代理
【docker】反向代理神器——Nginx Proxy Manager
【docker】Nginx Proxy Manager的使用
9.关于反向代理
关于3.1的说明
参考文章
MinIO+Nginx开启https域名访问 – 腾讯云开发者社区-腾讯云 (tencent.com)
Docker部署MinIO – IT者 (itze.cn)
使用 MinIO 搭建属于自己的对象存储(OSS) – Jetsung – 博客园 (cnblogs.com)
容器更改
我们需要更改容器启动命令:
创建容器命令更改为以下,注意,如果原来路径下有文件存在,把原来的minio容器删掉重新创建不会有影响!
docker run -d -p 9000:9000 -p 50000:50000 --name minio \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=123456" \
-e "MINIO_SERVER_URL=https://minio.itze.cn " \
-v /root/minio/data:/data \
-v /root/minio/config:/root/.minio \
minio/minio server /data --console-address ":50000" -address ":9000"
容器命令解释
稍微说一下
-d 后台运行
-p 9000:9000 #前面的9000是打开本机的9000端口映射docker容器中MinIO的9000端口
-e “MINIO_ROOT_USER=admin” \ #用户名
-e “MINIO_ROOT_PASSWORD=12345678” \ #密码
-e “MINIO_SERVER_URL=http://127.0.0.1:9000 ” #指定API访问地址,可以不加默认127.0.0.1
-v /dataBase/minio/data:/data \ #挂载卷
-v /dataBase/minio/config:/root/.minio \ #挂载卷
–console-address “:50000” #指定控制台端口为静态端口
-address “:9000” # API访问端口
访问
控制台访问地址:https://minio.itze.cn:50000
API访问地址:https://minio.itze.cn
注意:这里如果直接访问API的访问地址,MinIO会307默认跳转到控制台页面。
重点注意事项
这里稍微解释一个命令:-e “MINIO_SERVER_URL=https://minio.itze.cn ”
这个地址是MioIO API访问请求的地址,这里创建容器时是什么,无论在MinIO控制台或者是通过API代码分享的文件链接的前缀就是这个
这里为什么我们直接写成了域名,而不是网上大部分说的IP+端口号,原因就是文章上面的已经做了反向代理,访问https://minio.itze.cn 就等于访问 https://123.123.123.123:9000
但是如果浏览器直接访问后面这个IP+端口的浏览器会报SSL证书不安全,因为我们签发证书是对minio.itze.cn这个域名主题
MINIO_SERVER_URL等于什么分享链接的前缀就是什么,如果你用的是服务器的外网域名+端口,那么前缀就是就是IP:端口号,如果硬是改成域名访问会报错