
Docker 搭建 Minio2024 + picgo + typora 图床
Minio Docker 单节点单磁盘
https://docs.min.io/docs/minio-docker-quickstart-guide.html
单节点部署又分为单磁盘、多磁盘部署,这里不推荐使用单磁盘,因为 minio 的纠删码 > 算法要求至少 4 块磁盘,否则应用不了纠删码,保证不了数据安全以及高可用。
https://min.io/docs/minio/linux/operations/install-deploy-manage/migrate-fs-gateway.html
从 RELEASE.2022-10-29T06-21-33Z 开始,MinIO 网关和相关的文件系统模式代码已被删除。仍在使用独立或文件系统 MinIO 模式升级到 RELEASE.2022-10-29T06-21-33Z 或更高版本的部署在尝试启动 MinIO 时收到错误。
错误信息为:
1 | ERROR Unable to use the drive /data: Drive /data: found backend type fs, expected xl or xl-single - to migrate to a supported backend visit https://min.io/docs/minio/linux/operations/install-deploy-manage/migrate-fs-gateway.html: Invalid arguments specified |
注意: RELEASE.2022-10-24T18-35-07Z
之前的版本升级需要迁移数据
1 | wget http://dl.minio.org.cn/client/mc/release/linux-amd64/mc |
1 | mkdir -p ~/minio/data |
-v /data/minio/data:/data \ 持久化数据文件到本地
/data/minio/data
-v /data/minio/config:/root/.minio \ 映射配置目录到本地/data/minio/config
, 配置 HTTPS 需要
MINIO_ROOT_USER = 用户名 /accessKey
MINIO_ROOT_PASSWORD = 密码 /secretKey
MINIO_SERVER_URL=API 域名,通过 Web 管理域名登陆创建文件分享时会调用此 API 域名
–console-address ‘0.0.0.0:19001’: Minio 控制后台地址
–address ‘:19000’:Minio 的 API 地址端口
MINIO_DOMAIN 配置 MinIO 来支持自定义域名访问对象
- 确保你的 SSL 证书支持 *.minio.
。你可能需要一个通配符 SSL 证书。 - 在 DNS 设置中,确保 *.minio.
指向你的服务器 IP。 - MinIO 的虚拟主机样式 URL 要求存储桶名称必须是域名的第一部分。例如,picture.
对应的是 “picture” 存储桶。
** HTTP 方式,HTTPS 请看 HTTPS 章节,我尝试使用 nginx 进行反向代理配置 HTTPS 失败了。。。 **
1 | docker run -d \ |
docker ps -a
查看容器是否正常启动
启动完成后 访问 http://ip:19000 即可进入 Minio
Docker-compose 搭建 HTTPS 节点
条件为安装 docker-compose
docker-compose.yaml
1 | services: |
- 修改 docker-compose.yaml 配置
MINIO_ROOT_USER = 用户名 /accessKey
MINIO_ROOT_PASSWORD = 密码 /secretKey
MINIO_SERVER_URL=API 域名
MINIO_BROWSER_REDIRECT_URL = 控制台访问地址
MINIO_DOMAIN 配置 MinIO 来支持自定义域名访问对象
- 确保你的 SSL 证书支持 *.minio.
。你可能需要一个通配符 SSL 证书。 - 在 DNS 设置中,确保 *.minio.
指向你的服务器 IP。 - MinIO 的虚拟主机样式 URL 要求存储桶名称必须是域名的第一部分。例如,picture.
对应的是 “picture” 存储桶。
- 执行安装
1 | docker-compose pull |
配置 HTTPS 证书
本教程使用宝塔面板进行配置,你也可以使用 Let’s Encrypt 申请免费证书
- 创建 minio 站点
- 添加主域名和桶泛域名
申请 Let’s Encrypt
将证书部署到 minio
1
2
3cd /data/minio/config/certs
touch private.key
touch public.crt分别将申请证书的 密钥 (KEY) 和证书 (PEM 格式) 填入 private.key 和 public.crt
1
docker-compose restart
访问 MINIO
https://
新建 Bucket 并设为公共访问
PS: 如果部署的是单节点单磁盘 Minio 提示以下内容,并不影响使用但会丢失高可用特性。如果需要可以使用 docker-compose 安装分布式节点
默认情况下新建的 Buckets 是私有权限,文件也可以直接分享带有效期的临时链接。如果需要当图床使用,可以将 Buckets 修改为公开权限,就可以直接用 https://kl.do/test/abc.jpg 当图床使用.
设为公共访问 Public
Nginx 反向代理
官方文档 http://docs.minio.org.cn/docs/master/setup-nginx-proxy-with-minio
标准的 Root 配置
在文件 /etc/nginx/sites-enabled
中添加下面的内容,同时删除同一个目录中现有的 default
文件。
1 | server { |
非 Root 配置
注意:
- 用你自己的服务名替换
http://localhost:9000
。 - 用所需的路径替换
files
。这不能是~^/minio
, 因为minio
是 minio 中的保留字。 - 所使用的路径 (在本例中为
files
) 按照惯例,应设置为 minio 所使用的存储桶的名称。 - 可以通过添加更多类似于上面定义的 location 定义来访问其他存储桶。
1 | location ~^/files { |
宝塔面板
与非 Root 配置一样的
保存即可使用,后点击修改,将以下内容粘贴
1 | location / { |
- https://minio.kl.do/picture/images/avatar-y.png: Minio 平台图片访问地址示例
- https://picture.minio.kl.do/images/avatar.png: 使用自定义域名访问 Minio 平台图片示例
PicGO
PicGo App
- 下载 PicGo
1 | yay -S picgo-appimage |
- 安装 minio 插件
可以在 picgo 中安装
1 | https://github.com/Herbertzz/picgo-plugin-minio |
- 设置图床参数
测试上传即可
PicGO-Core
安装 minio 插件
picgo 默认路径 C:\Users\<用户名>\AppData\Roaming\Typora\picgo\win64\picgo.exe
1 | C:\Users\<用户名>\AppData\Roaming\Typora\picgo\win64\picgo.exe install minio |
1 | { |
PicGo-Cli 推荐使用
Linux 需要使用 Cli 工具,Windonws 则不需要
1 | sudo npm install -g picgo |
- 设置图床信息
1 | picgo set uploader |
- 设定仓库名:按照【用户名 / 图床仓库名】的格式填写
- 设定分支名:【 main 】 2021 年后 master 改为 main
- 设定 Token: 粘贴上述生成的【 Token 】
- 指定存储路径:如【 images/ 】, 这样就会在仓库下创建一个名为 images 的文件夹,图片将会储存在此文件夹中
- 设定自定义域名:它的的作用是,在图片上传后,PicGo 会按照【 自定义域名 + 上传的图片名 】的方式生成访问链接,放到粘贴板上,
- 安装插件
1 | picgo install minio |
- 配置 minio 参数
1 | picgo set uploader |
- 选择默认图床
1 | picgo use uploader |
Typora
- Thanks for your appreciation. / 感谢您的赞赏