共计 2553 个字符,预计需要花费 7 分钟才能阅读完成。
本站提供 Linux 服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme
MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器 / 虚拟机镜像等,这篇文章分享下使用 Docker 搭建一个单磁盘实例的 minio 对象存储服务。
Docker 搭建 minio server
在开始之前,请确保您已经安装好 Docker 环境,参考:Linux 安装 Docker 与 Docker 常用命令,然后复制下面的命令执行:
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 系统为例:
# 下载 mc 客户端
wget https://dl.min.io/client/mc/release/linux-amd64/mc
#添加执行权限
chmod +x mc
#移动到 /usr/bin 目录
mv mc /usr/bin/
#查看使用帮助
./mc --help
使用之前我们需要先进行设置,执行下面的命令,添加一个 mino 存储:
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
常用的一些命令如下:
ls 列出文件和文件夹。mb 创建一个存储桶或一个文件夹。cat 显示文件和对象内容。pipe 将一个 STDIN 重定向到一个对象或者文件或者 STDOUT。share 生成用于共享的 URL。cp 拷贝文件和对象。mirror 给存储桶和文件夹做镜像。find 基于参数查找文件。diff 对两个文件夹或者存储桶比较差异。rm 删除文件和对象。events 管理对象通知。watch 监听文件和对象的事件。policy 管理访问策略。session 为 cp 命令管理保存的会话。config 管理 mc 配置文件。update 检查软件更新。version 输出版本信息。
mc 常用命令实例
# 查看已添加的 host 列表
mc config host list
#查看指定存储桶下面的文件
mc ls host/bucket/
#复制一个对象(文件)到目标 host
mc cp local_file host/bucket/
#从 minio 复制一个文件到本地
mc cp host/bucket/file_name ./
#设置 minio 的匿名访问策略,可选值有 none, download, upload, public
mc policy set upload host/bucket/
#查看匿名策略
mc policy list host/bucket/
host
:就是你在mc config host add
时设置的名称bucket
:指存储桶的名称
注意:匿名访问策略一般不建议设置为public
,这样任何人都可以上传、下载、删除,是个非常危险的操作。如果希望文件公开访问,通常设置为 download 即可。
进一步操作
可参考我的另一篇文章:使用 Nginx 反向代理 minio,提供文件公共访问
最后
上述内容仅简单介绍了 minio server 的安装和 mc 客户端的基本使用,minio 的功能和特性还远不止如此。此文章仅使用单磁盘快速搭建和演示,生产用途请搭建多磁盘的分布式方案。minio 作为企业级的自建对象存储方案,目前已经比较成熟和完善,入门也比较简单。如果企业有对象存储方面的需求,minio 不妨一试。
- minio 官网:https://min.io/
- mino 中文文档:http://docs.minio.org.cn/docs/