基于Docker与Docker Compose安装部署MinIO对象存储服务
MinIO是一个开源的分布式对象存储服务器,旨在实现高性能、高可用性和可扩展性。它是构建在云原生环境中的对象存储解决方案之一。
安装部署MinIO对象存储服务
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_USER
和MINIO_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
更多推荐
所有评论(0)