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文件,或者通过下面的命令操作:
#移除名称为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/