MinIO可视化的对象存储服务
一、简介
平时做项目的时候,文件存储是个很常见的需求。这时候就会用到对象存储服务,平时可能会选择 OSS、AWS S3 这类第三方服务。今天带大家搭建一款自己的对象存储服务,带可视化管理,用起来也挺简单!
MinIO 是一款基于 Go 语言的高性能对象存储服务。它采用了 Apache License v2.0 开源协议,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。
二、环境准备
服务器 | 系统 | 备注 |
---|---|---|
192.168.184.130 | centos7 | Linux部署方式、docker 部署方式 |
192.168.0.107 | Windows | Windows 部署方式 |
三、部署
MinIO 是支持多平台的 Windows、macOS、Linux、Docker 都支持,各个平台部署起来相对简单。MinIO 部署分为两个模式,一个是单模式,另一个是分布式模式
首先提前说明一下,9000 和 9001 是端口号,如果被占用,可以使用其他的端口号, - v 就是路径了,这里可以创建一个,或者使用其他的路径就好了
3.1 Docker
使用下面命令即可启动一个 minio 实例,这里指定了账号 admin:admin123456,数据存储在宿主机的 /mnt/data 目录下
docker run -d --restart always -p 9000:9000 -p 9001:9001 --name minio -v /mnt/data:/data -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123456" minio/minio server /data --console-address ":9001"
异常解决(补充)
有些小伙伴启动后会发现访问不了,使用 docker logs [容器id] ,可以看到 mkdir /data/.minio.sys: permission denied 的错误
这个也有解决办法,就是在启动命令中加 --privileged=true 参数即可
docker run -d --restart always --privileged=true -p 9000:9000 -p 9001:9001 --name minio -v /mnt/data:/data -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123456" minio/minio server /data --console-address ":9001"
这是因为大约在 0.6 版,privileged 被引入docker。使用该参数,container 内的root拥有真正的 root 权限。否则,container 内的 root 只是外部的一个普通用户权限。privileged 启动的容器,可以看到很多 host 上的设备,并且可以执行 mount 。甚至允许在 docker 容器中启动 docker 容器。
3.2 GNU/Linux
首先使用下面 wget 命令进行下载,我这里放置的是 /var/local/ 目录下,然后使用 chmod 赋予权限
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
下载完成后,就可以启动 MinIO 了。不过在启动之前先创建一下数据存储的目录 /data/minio,然后就可以使用命令启动 MinIO 了
mkdir -p /data/minio
./minio server /data/minio --console-address ":9001"
3.3 Windows
点击地址 https://dl.min.io/server/minio/release/windows-amd64/minio.exe 对 MiniO 进行下载
下载完成后,在可执行文件夹下启动命令行工具,执行下面命令,即可启动 MiniO
minio.exe server D:\Data\MiniO --console-address ":9001"
D:\Data\MiniO :支持 minio 数据持久存储的目录
四、MinIO Console
在启动 MinIO 时,会发现通常指定了两个端口,其中 90001 就是 Console 的端口。浏览器访问 console http://192.168.0.107:9001/,输入指定的账户,在没有指定的情况下默认是 minioadmin:minioadmin,docker 中可以指定如上面的部署 admin:admin123456
五、MinIO Client
对于对象存储来说,MinIO Console 的功能还是不够用的,所以官方还提供了基于命令行的客户端 MinIO Client (简称 mc),下面来讲讲它的使用方法。MinIO 也是支持多平台的 Windows、macOS、Linux、Docker 都支持,部署起来也相对简单。
5.1 安装及配置
5.1.1 Windows
访问 https://dl.min.io/client/mc/release/windows-amd64/mc.exe 下载 mc
然后在 mc 文件目录,启动命令行客户端。现在的 mc 与 server 是没有关联的,可以使用下面命令在 mc 添加 server,这里在 Windows 连接 docker 中部署的 server
mc config host add minio http://192.168.184.130:9000 admin admin123456
格式:
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY>
5.2 常用操作
更多的操作可以使用 mc --help 进行查看
# 查看存储桶
mc ls minio
# 查看存储桶中存在的文件
mc ls minio/blog
六、兼容AWS S3
当对接第三方服务要用到对象存储时,这些服务往往都是支持 AWS S3 的。由于 MinIO 兼容 AWS S3 的大多数 API,我们可以直接拿它当 AWS S3 来使用。
访问地址 https://s3browser.com/ 下载S3 客户端工具,然后按照提示下一步下一步即可完成安装
安装完成后打开软件,我这里是在 Windows 上,连接 docker 中部署的 server
MinIO可视化的对象存储服务相关推荐
- 可视化的对象存储服务
可视化的对象存储服务 MinIO简介 安装 MinIO Console使用 客户端使用 MinIO Client 常用命令 MinIO Client 安装及配置 MinIO Client 常用操作 兼 ...
- MiniO对象存储服务 磁盘缓存快速入门
MiniO对象存储服务 磁盘缓存快速入门 这里的磁盘缓存功能是指使用缓存磁盘来存储租户常用的一些数据.例如,假设你通过gateway azure设置访问一个对象并下载下来进行缓存,那接下来的请求都会直 ...
- 对象存储服务MinIO
MinIO简介 MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档.由于采用Golang实现,服务端可以工作在Windo ...
- 轻量级对象存储服务minio安装及使用
简介 Minio 是一个基于Apache License v2.0开源协议的对象存储服务,非常适合于存储大容量非结构化的数据,例如图片.视频.日志文件.备份数据和容器/虚拟机镜像等,而一个对象文件可以 ...
- Minio 搭建对象存储服务
文章目录 1 mino简介 2 环境 3 部署 3.1 获取程序 3.2 存储类别 3.3 挂载硬盘 3.4 单机部署 3.4.1 部署及测试 3.4.2 作为Linux Service启动 3.5 ...
- 自己搭建个对象存储服务难不难?
今天小编就在欢快的编码,来了一个刚毕业的小嫩青,虚心求教到 对象存储服务到底有啥用? 说起这个对象存储服务,那家伙,那场面,那可是锣鼓喧天.鞭炮齐鸣 打住,打住,其实小编对于对象存储服务的理解是,为了 ...
- python分布式对象存储_推荐:一款分布式的对象存储服务
最近公司在准备内部数据上云,并且内部数据库每天的数据量很大,需要采用大数据存储的方案. 方案调研 每个程序技术在实现之前,需要进行开源产品的调研,适合自己产品的技术方案才是最好的. 需求 我们需要处理 ...
- 如何使用阿里云国际对象存储服务自动备份
异地备份是一项重要的安全措施.它们允许在发生硬件故障.意外删除或任何其他灾难性事件时还原数据.自动备份可提高备份过程的可靠性,并确保定期备份最近的数据. 有关阿里云国际对象存储服务自动备份的操作,今天 ...
- 使用minio搭建高性能对象存储-第一部分:原型
近期参与了一个项目,该项目有存储大量图片.短视频.音频等非结构化数据的需求.于是我优先在Go社区寻找能满足这类需求的开源项目,minio就这样进入了我的视野. 图:minio logo 其实三年前我就 ...
最新文章
- python语言怎么学-Py列为黑客应该学的四种编程语言之一 新手该怎么学
- Excel35招必学秘技
- 根据class名 赋值_匿名内部类 类名规则
- GT-----FAQ整理
- android功耗iphone,是心目中的安卓小屏旗舰吗?iPhone 8尺寸大小,4000mAh电池容量...
- C++string容器-字符串拼接
- python语言语句块标记是_Python的基本语法——语句块
- java连接unix_Java 使用 UnixSocket 调用 Docker API
- web和python前景_我想了解一下pythonweb和javaweb比较详细的学习成本和应用前景,谢谢!?...
- stl之deque双端队列容器
- 使用deque模块固定队列长度,用headq模块来查找最大或最小的N个元素以及实现一个优先级排序的队列...
- 【ICCV2019论文阅读】PU-GAN:点云上采样对抗网络
- Windows下桌面便签小工具--StickyPad简单使用教程(非StickyNotes)
- HTTP Digest Authentication 使用心得
- ${} 与 #{} 区别
- 最佳情侣身高差 (10 分)
- 体重指数计算器(中文版)
- 破解卡巴斯基操作系统安装限制...
- MATLAB实现FFT及信号的谱分析
- 哪些人更适合学Java?看看就知道了
热门文章
- flv.js优化直播时延
- linux内核实验一:一个简单的时间片轮转多道程序内核代码
- 严禁使用计算机存储,处理,传输涉密信息,非涉密办公内网不能视作涉密信息系统存储、处理、传输涉密信息 - 作业在线问答...
- 分公司成立流程、准备的材料
- 颜色模型与颜色应用---RGB颜色模型
- MacBook 外接鼠标键盘时指针乱窜、不受控制的解决方法
- 未来三年的移动互联网创业--汪华在移动开发者大会上的演讲
- NBT封面:水稻NRT1.1B基因调控根系微生物组参与氮利用(作者解读, 端午水稻专题)...
- 【LOG10】函数使用技巧
- Linguistically Regularized LSTM for Sentiment Classification 论文原文、代码实现以及翻译