阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Docker搭建minio对象存储与mc客户端常用命令

63次阅读
没有评论

共计 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 不妨一试。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计2553字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中