一、Minio概述
Minio是一款开源的对象存储服务器,可以运行在多种操作系统上,包括Linux、Windows和MacOS等。提供一种简单、可扩展、高可用的对象存储解决方案,支持多种数据格式,包括对象、块和文件等。Minio是一款强大、灵活、可扩展的对象存储服务器,适用于各种应用场景,包括云存储、大数据存储和物联网等。
官网地址:
https://min.io/
文档地址:
https://docs.min.io/
Minio的主要特点:
简单易用: Minio的安装和配置非常简单,只需要下载并运行相应的二进制文件即可。它提供了一个Web UI,可以通过界面管理存储桶和对象。
可扩展性: Minio可以轻松地扩展到多个节点,以提供高可用性和容错能力。它支持多种部署模式,包括单节点、主从复制和集群等。
高可用性: Minio提供了多种机制来保证数据的可靠性和可用性,包括冗余备份、数据复制和故障转移等。
安全性: Minio提供了多种安全机制来保护数据的机密性和完整性,包括SSL/TLS加密、访问控制和数据加密等。
多语言支持: Minio支持多种编程语言,包括Java、Python、Ruby和Go等。
社区支持: Minio是一个开源项目,拥有庞大的社区支持和贡献者。它的源代码可以在GitHub上获得,并且有一个活跃的邮件列表和论坛。
对象存储: Minio的核心功能是对象存储。它允许用户上传和下载任意数量和大小的对象,并提供了多种API和SDK来访问这些对象。
块存储: Minio还支持块存储,允许用户上传和下载大型文件(例如图像或视频)。块存储是一种快速、高效的方式来处理大型文件。
文件存储: Minio还支持文件存储,允许用户上传和下载单个文件。文件存储是一种简单、快速的方式来处理小型文件。
二、Minio应用场景
大规模数据存储: 由于MinIO使用分布式环境来存储数据,因此可以轻松扩展以满足需要管理大量数据的组织和企业的需求。
图像和媒体存储: 由于MinIO对原始二进制数据进行了优化,因此非常适合存储图像、音频和视频等媒体文件。它还支持WebP、JPEG和PNG等格式,可在多种设备和浏览器上工作。
云原生应用程序: MinIO是一个云原生的对象存储系统,可以与Kubernetes、Docker Swarm和Mesosphere等容器编排工具无缝集成,可以很好地满足基于云的应用程序的需求。
数据保护和灾难恢复: MinIO的多副本写入功能和内置的纠删码支持,使得数据备份和恢复变得简单而强大。
分布式计算和机器学习: MinIO提供STS(S3 Select)和HDFS接口,支持在数据仓库中直接运行SQL查询和MapReduce等并行处理框架。这使得它成为用于Big Data、AI和ML等分布式计算任务的理想选择。
包括但不限于以上几种。
三、Centos7安装Minio
1.创建目标文件夹
mkdir minio
2.使用docker查看目标镜像状况
docker search minio
3.使用docker拉取镜像
docker pull minio/minio
4.查看镜像拉取情况
docker images
5.docker启动Minio容器
docker run -p 9000:9000 -p 9090:9090 --net=host --name minio -d --restart=always -e "MINIO_ACCESS_KEY=IT@WangHui" -e "MINIO_SECRET_KEY=IT@WangHui" minio/minio server /data --console-address ":9000" -address ":9090"
过程中配置密码时,对于密码强度是有要求的,不然报错
Docker 命令,具体参数解释如下:
-p: 映射容器内部的端口到宿主机上。其中 9000 和 9090 分别映射到宿主机的 9000 和 9090 端口上。
--net=host: 将容器加入到主机网络中,共享宿主机的 IP 地址。
--name minio: 指定容器的名称为 minio。
--restart=always: 设置容器在退出后自动重新启动。
-e: 设置环境变量。这里设置了两个环境变量:MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY,值分别为 IT@WangHui 和 IT@WangHui。
--mount: 将容器内部的目录挂载到宿主机上。这里将容器内的 /data 目录挂载到了宿主机的 /data 目录上。
--console-address: 指定容器的控制台地址。这里设置为 :9000,表示可以通过宿主机上的 9000 端口访问容器的控制台。
-address: 指定容器的网络地址。这里设置为 :9090,表示可以通过宿主机上的 9090 端口访问容器的服务。
页面访问9000,代码里面9090
若是报错
原因:
主要是因为在启动docker容器的时候或做docker配置的时候,还对防火墙设置重新启动等配置,这样会清除docker的相关配置,导致在查询防火墙规则的时候显示不到docker的链。iptables -L查询iptables链。
解决:
是由于firewalld重启导致,而docker重启又会将其注册iptables链找回来。
然后删除刚才启动失败的容器,不然会继续报错容器已存在
systemctl restart docker #重启docker
docker ps -a #查看运行容器
docker rm -f minio #根据容器名删除容器(自己注意辨别自己的)
当启动后在浏览器访问http://localhost:9000就可以访问minio的图形化界面了,如图所示:
用户名密码就是启动参数里面的数据
如果访问失败,那就是防火墙问题或者是启动参数最后两项没有添加,再不会有其他的,除非容器没有启动成功
查看放行端口可以使用如下命令
firewall-cmd --list-ports
要放行CentOS 7上的9000端口和9090端口,您可以按照以下步骤操作:
1.检查防火墙状态
使用以下命令检查防火墙状态:
systemctl status firewalld
如果防火墙已停止,则启动它:
systemctl start firewalld
2.允许9000端口通过防火墙
使用以下命令允许TCP流量通过9000端口:
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=9090/tcp --permanent
这将向防火墙添加一个规则,以允许TCP流量通过9000端口。要永久保存此更改,请运行以下命令:
firewall-cmd --reload
3.重新启动防火墙服务shell
使用以下命令重新启动防火墙服务:
systemctl restart firewalld
现在,已经成功放行CentOS 7上的9000和9090端口。