MinIO

MinIO是一个开源的分布式对象存储服务器,旨在实现高性能、高可用性和可扩展性。它是构建在云原生环境中的对象存储解决方案之一。

MinIO以轻量级和快速部署为特点,可以在各种硬件设备上运行,包括个人计算机、服务器和云计算平台。它使用分布式架构来存储和管理大规模数据集,并提供了简单的RESTful API接口,使应用程序能够通过标准HTTP/HTTPS协议访问和操作存储在MinIO中的对象。

MinIO支持数据的分片和复制,可以将数据在多个节点上进行存储和备份,以提高可用性和数据冗余性。它还支持数据加密、访问控制和事件通知等功能,以满足安全性和合规性需求。

由于其开源性质和易于使用的特点,MinIO在云原生应用开发、数据湖、备份和恢复等场景中得到广泛应用。它与其他云原生技术(如Kubernetes)以及各种应用程序和工具集成良好,为用户提供了一种灵活而可靠的对象存储解决方案。

英文官网:https://min.io/

中文官网:https://www.minio.org.cn

GitHub地址:https://github.com/minio/minio

基于Docker部署

拉取镜像

首先需要从Docker Hub上拉取MinIO的官方Docker镜像。在终端中运行以下命令:

docker pull docker://minio/minio

也可以从quay.io拉取镜像

docker pull quay.io/minio/minio

创建挂载目录

MinIO需要一个目录来存储对象数据。可以在本地文件系统上创建一个目录供MinIO使用。

mkdir -p ./minio/data

同时再创建一个存放配置的目录。

mkdir -p ./minio/config

运行MinIO容器

使用以下命令启动 MinIO 容器,并将刚才创建的目录挂载到容器中:

docker run -d \
  --name "minio" \
  -p 9000:9000 \
  -p 9001:9001 \
  --restart=always \
  -e "MINIO_ROOT_USER=Admin" \
  -e "MINIO_ROOT_PASSWORD=Admin123" \
  -v ./minio/data:/data \
  -v ./minio/config:/root/.minio \
  -v /etc/localtime:/etc/localtime:ro \
  -v /etc/timezone:/etc/timezone:ro \
  quay.io/minio/minio server /data --console-address ":9001" --address ":9000"

配置说明:

docker run:启动一个新容器

-d: 后台运行容器

--name minio:为容器指定一个名称

-p 9000:9000 将主机9000端口映射到容器9000端口。MinIO服务默认使用9000端口提供API服务

-p 9000:9000 将主机9001端口映射到容器9001端口。这是MinIO的控制台端口,用于访问MinIO的图形用户界面

-e "MINIO_ROOT_USER=Admin":设置访问MinIO服务的用户名称

-e "MINIO_ROOT_PASSWORD=Admin123":设置访问MinIO服务的用户密码

-v ./minio/data:/data:数据存储目录: 将宿主机的目录./minio/data挂载到容器的/data目录

-v ./minio/config:/root/.minio:MinIO的配置文件目录: 将宿主机的目录./minio/config挂载到容器的/root/.minio目录

:ro::ro是一个选项,表示将卷以只读模式(read-only mode)挂载。这意味着容器可以读取挂载的文件或目录,但不能对其进行修改

-v /etc/localtime:/etc/localtime:ro:将主机的/etc/localtime文件映射到容器内,确保容器使用主机的本地时间

-v /etc/timezone:/etc/timezone:ro: 将主机的 /etc/timezone 文件映射到容器内,确保容器知道主机的时区信息

quay.io/minio/minio:运行的Docker镜像的名称

server /data:传递给MinIO程序的命令行参数,使用/data目录作为其数据存储位置

--console-address ":9001":指定MinIO控制台服务的监听地址和端口

--address ":9000":指定MinIO API服务的监听地址和端口

访问Web界面

浏览器访问http://IP:9001,即可访问MinIO的Web控制台
在这里插入图片描述
使用为容器指定的环境变量MINIO_ROOT_USERMINIO_ROOT_PASSWORD的值进行登录
在这里插入图片描述

创建存储桶

MinIO 使用 bucket 来组织对象。bucket 类似于文件系统中的文件夹或目录,每个 bucket 可以容纳任意数量的对象。

点击Buckets菜单栏,进入桶创建界面。
在这里插入图片描述
输入桶的名称,其他默认即可。
在这里插入图片描述
创建桶选项说明:

Versioning: 版本控制允许使用同一个密钥保存同一对象的多个版本。

Object Locking: 对象锁定可防止对象被删除。需要支持保留和合法保留。只能在创建存储桶时启用。

Quota: 配额限制存储桶中的数据量。

注意:保留会施加规则以防止在一段时间内删除对象。必须启用版本控制才能设置存储桶保留策略。

桶创建完成:
在这里插入图片描述
点击桶,可以进行桶相关设置。如:修改Access Policy为public
在这里插入图片描述

上传文件

点击Object Browser菜单,选择进入创建的桶,上传文件
在这里插入图片描述
点击文件可查看对文件的操作:下载、分享、预览、打标签等,以及文件的元数据信息。
在这里插入图片描述

创建Access Keys

创建Access Keys,用于程序访问Minio的Api接口
在这里插入图片描述
Minio会自动生成随机访问凭证
在这里插入图片描述

创建用户

MinIO 用户由唯一的访问密钥(用户名)和对应的密钥(密码)组成。客户端必须通过指定现有 MinIO 用户的有效访问密钥(用户名)和对应的密钥(密码)来验证其身份。

每个用户可以分配一个或多个策略,这些策略明确列出该用户可以访问的操作和资源。用户还可以从其所属的组中继承策略。

Identity菜单栏下点击Users菜单,进入用户创建界面。
在这里插入图片描述
输入用户名、密码。勾选权限:控制台、只读、只写、读写等权限。
在这里插入图片描述

创建用户组

一个组可以有一个附加的 IAM 策略,该组中的所有成员用户都会继承该策略。组支持更简化的 MinIO 租户用户权限管理。

Identity菜单栏下点击Groups菜单,进入用户组创建界面。
在这里插入图片描述
输入要创建的用户组名称,然后选择群组成员。
在这里插入图片描述

基于Docker Compose部署

创建docker-compose.yml

创建docker-compose.yml文件,具体配置内容如下:

version: "3.5"
services:
  minio:
    image: quay.io/minio/minio:latest
    container_name: minio
    privileged: true
    restart: always
    ports:
      # API接口访问端口
      - 9000:9000
      # Web管理访问端口
      - 9001:9001
    environment:
      # Web管理用户名
      MINIO_ROOT_USER: Admin
      #Web管理密码
      MINIO_ROOT_PASSWORD: Admin123
    volumes:
      # 文件目录映射
      - ./minio/data:/data
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    # 启动minio容器服务执行命令
    # 必须指定固定端口:Web管理后台是动态端口  /data参数是容器内部数据目录
    command: server  /data --console-address ":9001"

启动MinIO服务

docker-compose.yml文件所在路径下,执行以下命令启动Minio

docker-compose up -d
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐