• MinIO可视化的对象存储服务


    一、简介

    平时做项目的时候,文件存储是个很常见的需求。这时候就会用到对象存储服务,平时可能会选择 OSS、AWS S3 这类第三方服务。今天带大家搭建一款自己的对象存储服务,带可视化管理,用起来也挺简单!

    MinIO 是一款基于 Go 语言的高性能对象存储服务。它采用了 Apache License v2.0 开源协议,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。

    二、环境准备

    服务器系统备注
    192.168.184.130centos7Linux部署方式、docker 部署方式
    192.168.0.107WindowsWindows 部署方式

    三、部署

    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"
    
    • 1

    在这里插入图片描述在这里插入图片描述

    异常解决(补充)

    有些小伙伴启动后会发现访问不了,使用 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" 
    
    • 1

    在这里插入图片描述
    这是因为大约在 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
    
    • 1
    chmod +x minio
    
    • 1

    下载完成后,就可以启动 MinIO 了。不过在启动之前先创建一下数据存储的目录 /data/minio,然后就可以使用命令启动 MinIO 了

    mkdir -p /data/minio
    ./minio server /data/minio --console-address ":9001"
    
    • 1
    • 2

    在这里插入图片描述

    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"
    
    • 1

    在这里插入图片描述

    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
    
    • 1

    在这里插入图片描述

    格式:mc config host add

    5.2 常用操作

    更多的操作可以使用 mc --help 进行查看

    # 查看存储桶
    mc ls minio
    # 查看存储桶中存在的文件
    mc ls minio/blog
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    六、兼容AWS S3

    当对接第三方服务要用到对象存储时,这些服务往往都是支持 AWS S3 的。由于 MinIO 兼容 AWS S3 的大多数 API,我们可以直接拿它当 AWS S3 来使用。

    访问地址 https://s3browser.com/ 下载S3 客户端工具,然后按照提示下一步下一步即可完成安装
    在这里插入图片描述
    安装完成后打开软件,我这里是在 Windows 上,连接 docker 中部署的 server
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Hbase的scan原理
    jvm学习笔记
    深入解析Go非类型安全指针:技术全解与最佳实践
    Java 中的 Cloneable 接口和深拷贝
    CloudCompare 二次开发(9)——半径滤波
    c#常用的数据结构
    [C++] Reference
    Qt控件的装饰器:QSS选择器、伪状态简介
    线性代数-Python-03:矩阵的变换 - 手写Matrix Transformation及numpy中的用法
    智慧港口与无人机巡逻技术:走进未来的海上交通枢纽
  • 原文地址:https://blog.csdn.net/weixin_46785144/article/details/124740063