使用Docker搭建minio对象存储

2022-08-13 17:05:22 浏览数 (1)

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,这篇文章分享下使用Docker搭建一个单磁盘实例的minio对象存储服务。

Docker搭建minio server

在开始之前,请确保您已经安装好Docker环境,参考:Linux安装Docker与Docker常用命令,然后复制下面的命令执行:

代码语言:javascript复制
docker run -d -p 9000:9000 
  -p 9001:9001 
  --name minio 
  -v /data/minio:/data 
  -e "MINIO_ROOT_USER=xxx" 
  -e "MINIO_ROOT_PASSWORD=xxx" 
  -e MINIO_DOMAIN="xxx.com" 
  --restart=always 
  minio/minio server /data --console-address ":9001"

上述参数含义如下:

  • 9000数据通讯端口,比如您通过客户端或API上传对象时使用的端口
  • /data/minio为本地挂载路径
  • MINIO_ROOT_USER设置用户名
  • MINIO_ROOT_PASSWORD设置密码
  • MINIO_DOMAIN设置域名,域名的作用后面做进一步介绍
  • --console-address ":9001"为WEB访问端口,以前老版本没有这个参数,最近新版增加的

域名的作用

默认情况下,如果要访问某个对象,地址为:http://IP:9001/bucket/xxx.txt,如果您在搭建的时候添加了域名参数MINIO_DOMAIN,域名做好解析后,您可以使用这样的方式访问到对象:http://bucket.xxx.com/1.txt,相当于就是将bucket映射为主机名称(域名前缀)

访问 && 设置

搭建完毕后通过您的IP:9001进行访问(或者域名也可以,前提是需要做解析),输入上面设置的用户名、密码进行登录。

用过对象存储的同学应该都知道bucket的概念,翻译成中文就是“桶”,我们的对象(文件)就是存放在这个“桶里面”,接下来我们点“Create Bucket”创建一个桶。

桶名称自己随便取一个,只要不重名就行。然后还可以选择是否启用对象(文件)历史版本,以及一些数据限制(比如容量或者文件数),不过上面是单磁盘运行的,似乎不支持这些特性。

mc客户端安装

mc客户端用于操作和管理minio,以Linux系统为例:

代码语言:javascript复制
#下载mc客户端
wget https://dl.min.io/client/mc/release/linux-amd64/mc
#添加执行权限
chmod  x mc
#移动到/usr/bin目录
mv mc /usr/bin/
#查看使用帮助
./mc --help

使用之前我们需要先进行设置,执行下面的命令,添加一个mino存储:

代码语言:javascript复制
mc config host add minio http://192.168.1.51 BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 --api s3v4
  • http://192.168.1.51为minio server 的IP(注意需要带上端口号,如果按照上面的docker方法安装,应该带上9000端口)
  • BKIKJAA5BMMU2RHO6IBB对应上面的用户名(AccessKeyID)
  • V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12对应上面的密码(SecretAccessKey)

添加后会写入到一个配置文件中,路径为:/root/.mc/config.json如果需要移除某个存储,可以直接编辑json文件,或者通过下面的命令操作:

代码语言:javascript复制
#移除名称为minio的存储
mc config host remove minio

常用的一些命令如下:

代码语言:javascript复制
ls       列出文件和文件夹。
mb       创建一个存储桶或一个文件夹。
cat      显示文件和对象内容。
pipe     将一个STDIN重定向到一个对象或者文件或者STDOUT。
share    生成用于共享的URL。
cp       拷贝文件和对象。
mirror   给存储桶和文件夹做镜像。
find     基于参数查找文件。
diff     对两个文件夹或者存储桶比较差异。
rm       删除文件和对象。
events   管理对象通知。
watch    监听文件和对象的事件。
policy   管理访问策略。
session  为cp命令管理保存的会话。
config   管理mc配置文件。
update   检查软件更新。
version  输出版本信息。

最后

上述内容仅简单介绍了minio server的安装和mc客户端的基本使用,minio的功能和特性还远不止如此。此文章仅使用单磁盘快速搭建和演示,生产用途请搭建多磁盘的分布式方案。minio作为企业级的自建对象存储方案,目前已经比较成熟和完善,入门也比较简单。如果企业有对象存储方面的需求,minio不妨一试。

  • minio官网:https://min.io/
  • mino中文文档:http://docs.minio.org.cn/docs/

0 人点赞