Docker安装MinIO

文章目录


前言

在当今数据驱动的时代,高效、可靠的存储解决方案成为企业和技术团队的核心需求。MinIO 作为一款高性能、兼容 Amazon S3 的分布式对象存储系统,凭借其轻量级、易部署和开源特性,成为云原生存储领域的佼佼者。它适用于多种场景,包括大数据分析、机器学习模型存储、备份归档以及多媒体内容分发等。通过 Docker,用户可以在几秒钟内启动一个功能完整的 MinIO 实例,无需复杂的配置或依赖环境。无论是开发测试还是生产环境,Docker 化的 MinIO 都能提供一致的体验,同时支持灵活的扩展和高可用性部署。

本文将详细介绍如何在 Docker 环境下安装和配置 MinIO,涵盖单机部署、持久化存储设置、访问权限管理以及基本操作示例。无论你是开发者、运维工程师还是技术爱好者,都能通过本文快速掌握 MinIO 的核心用法,为项目构建高效、可扩展的存储基础设施。


一、MinIo简介?

MinIO是一款高性能、开源的对象存储服务器,兼容Amazon S3 API。专为云原生和容器化环境设计,支持分布式部署,适用于大规模数据存储场景。

1、核心特点

  • 高性能:采用Golang编写,优化了读写速度,适合高吞吐量场景。

  • 兼容S3:完全兼容Amazon S3 API,可无缝替换或扩展S3服务。

  • 轻量级:单二进制文件部署,资源占用低,启动快速。

  • 分布式架构:支持多节点集群,实现数据高可用和横向扩展

2、适用场景

  • 私有云存储:替代传统NAS/SAN,提供S3兼容接口。

  • 大数据分析:与Hadoop、Spark等生态工具集成。

  • 备份与归档:支持版本控制和生命周期管理。

3、MinIO的纠删码机制

MinIO的纠删码(Erasure Coding,EC)是一种数据冗余技术,用于在分布式存储系统中保障数据的高可用性和可靠性。通过数学算法将原始数据分割并编码为多个数据块和校验块,即使部分节点或磁盘失效,仍能恢复原始数据。

二、使用Docker安装MinIo

1、拉去镜像

bash 复制代码
docker pull minio/minio

2、 创建MinIO的挂载目录

bash 复制代码
mkdir -p /home/docker/minio/config
mkdir -p /home/docker/minio/data

3、启动脚本

bash 复制代码
docker run -d --name minio -p 9000:9000 -p 9001:9001 -v /home/docker/minio/data:/data -v /home/docker/minio/config:/root/.minio -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123456" minio/
minio server /data --console-address ":9001"
java 复制代码
docker run -d \
  --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -v /home/docker/minio/config:/root/.minio \
  -v /home/docker/minio/data:/data \
  -e "MINIO_ROOT_USER=admin" \
  -e "MINIO_ROOT_PASSWORD=admin123456" \
  minio/minio server /data --console-address ":9001"
  1. -p 9000:9000: 将minio的9000端口映射到宿主机的9000端口(左边为宿主机端口)

  2. -p 9001:9001:将minio的9001端口映射到宿主机的9001端口(左边为宿主机端口)

  3. -v /home/docker/minio/data:/data :表示将宿主机的/soft/minio/data目录挂载到容器的/data目录

  4. -v /home/docker/minio/data:/data :表示将宿主机的/soft/minio/data目录挂载到容器的/data目录

  5. -e "MINIO_ACCESS_KEY=admin":密钥也是登录的用户名,自己设置

  6. -e "MINIO_SECRET_KEY=admin123456" :秘密密钥也是登录的密码,自己设置

  7. --console-address ":9001" :客户端端口为9001

  8. -address ":9000" :服务端口为9000

4、测试

浏览器中输入:http://127.0.0.1:9001(启动脚本指定:--console-address ":9001")。进入如下图页面则表示安装成功。

输入用户名/密码进行登录,用户名密码在启动脚本中指定:

-e "MINIO_ACCESS_KEY=admin"

-e "MINIO_SECRET_KEY=admin123456" )

登录成功如下图:


三、MinIo的使用

1、创建桶

这里需要注意,创建的桶为私有属性,如果需要修改为pulbic则需要使用命令来修改,页面没有修改操作入口。

2、MinIo的操作命令

MinIo分为客户端命令、管理客户端命令。详细命令参照文档:

https://minio.org.cn/docs/minio/linux/reference/minio-mc.html

别名的相关操作

bash 复制代码
mc alias set myminio http://127.0.0.1:9000 CORRECT_ACCESS_KEY CORRECT_SECRET_KEY

文件的复制

设置桶权限

bash 复制代码
mc policy set public myminio/mybucket

myminio:别名

mybucket:桶名称

相关推荐
一个天蝎座 白勺 程序猿8 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
分布式存储与RustFS11 小时前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
陈希12312 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
@兽血沸腾13 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
闲云自留地18 小时前
K8s 的记忆大脑!ETCD 集群部署、etcdctl 命令与备份恢复全通关
容器·kubernetes·etcd
讯捷蓝达19 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
爱和冰阔落21 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
lisanmengmeng1 天前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮1 天前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
上火的金鱼妹1 天前
k8s生产实际问题排查(网关,数据库读写等)
运维·服务器