MinIO (https://min.io/) 是一种高性能、兼容亚马逊 S3 协议的对象存储服务,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器 / 虚拟机镜像等,而一个对象文件可以是任意大小,从几 Kb 到最大 5T 不等。而且天然支持分布式,并可在任何云或本地基础设施上运行。

MinIO主要采用Golang语言实现,整个系统都运行在操作系统的用户态空间,客户端与存储服务器之间采用http/https通信协议。

Docker运行

编写minio.yml文件:

services:
  minio:
    image: 'minio/minio:latest'
    container_name: minio
    restart: always
    ports:
      - '9090:9090' #api
      - '9091:9091' #控制台
    volumes:
      - ~/minio/data:/data  #数据目录
      - ~/minio/config:/root/.minio  #配置目录
    environment:
      - MINIO_ROOT_USER=test  #控制台用户名
      - MINIO_ROOT_PASSWORD=test123  #控制台用户密码
    command: server --address ':9090' --console-address ':9091' /data

docker compose -f minio.yml up -d 运行镜像

通过控制台访问

http://localhost:9091/login

输入控制台用户密码即可登录

创建api SK

Access Keys -> Create access key

把生成的AK和SK保存到本地,方便后续使用,因为SK为了安全,在控制台是没有办法查看的

https配置

如果要开启https访问,要把公私密钥重命名为private.keypublic.crt,放到config/certs目录下:

CAs
private.key
public.crt

在yml配置中加入https配置

environment:
      ...
      - MINIO_SERVER_URL=https://you.domain.com:9090
      - MINIO_BROWSER_REDIRECT_URL=https://you.domain.com:9091
healthcheck:
      test: ["CMD", "curl", "-f", "https://you.domain.com:9090/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

增加healthcheck用于心跳检测

docker compose -f minio.yml up -d 更新镜像

就可以通过https://you.domain.com:9091访问

0

本文为原创文章,转载请注明出处,欢迎访问作者网站(和而不同)

发表评论

error: Content is protected !!
blank