• Docker 搭建 Minio 容器


    一、简介

    Minio 是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。

    例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。

    二、说明

    Docker如果想安装软件 , 必须先到 Docker 镜像仓库下载镜像。

    Docker官方镜像

    1、寻找Minio镜像

    image-20221030171846884

    image-20221030171917314

    2、下载Minio镜像

    命令描述
    docker pull minio/minio下载最新版Minio镜像 (其实此命令就等同于 : docker pull minio/minio:latest )
    docker pull minio/minio:RELEASE.2022-06-20T23-13-45Z.fips下载指定版本的Minio镜像 (xxx指具体版本号)

    image-20221030172325134

    检查当前所有Docker下载的镜像

    docker images
    
    • 1

    3、创建目录

    一个用来存放配置,一个用来存储上传文件的目录

    启动前需要先创建Minio外部挂载的配置文件( /mydata/minio/config),和存储上传文件的目录( /mydata/minio/data)

    mkdir -p /mydata/minio/config
    mkdir -p /mydata/minio/data
    
    • 1
    • 2

    4、创建Minio容器并运行

    多行模式

    docker run -p 9000:9000 -p 9090:9090 \
         --net=host \
         --name minio \
         -d --restart=always \
         -e "MINIO_ROOT_USER=minioadmin" \
         -e "MINIO_ROOT_PASSWORD=minioadmin" \
         -v /mydata/minio/data:/data \
         -v /mydata/minio/config:/root/.minio \
         minio/minio server \
         /data --console-address ":9090" -address ":9000"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    单行模式

    docker run -p 9000:9000 -p 9090:9090      --net=host      --name minio      -d --restart=always      -e "MINIO_ACCESS_KEY=minioadmin"      -e "MINIO_SECRET_KEY=minioadmin"      -v /mydata/minio/data:/data      -v /mydata/minio/config:/root/.minio      minio/minio server      /data --console-address ":9090" -address ":9000"
    
    
    • 1
    • 2
    • 9090端口指的是minio的客户端端口

    • MINIO_ROOT_USER:账号

    • MINIO_ROOT_PASSWORD:密码(账号长度必须大于等于5,密码长度必须大于等于8位)

    5、访问操作

    访问:http://192.168.56.10:9090/login 用户名:密码 minioadmin:minioadmin

    image-20221030173340049

    5.1 创建用户

    image-20221030173530837

    在这里插入图片描述

    image-20221030173723526

    5.2 创建组

    image-20221030173757688

    image-20221030173905313

    5.3 创建accessKey和secretKey

    image-20221030173959497
    在这里插入图片描述

    文件内容如下,保存文件,SDK操作文件的API需要用到

    {"console":[{"access_key":"KJ7ALNE1W5USGVEHAIQ3","secret_key":"ToxjeRqqJ2CmRUhpMpdXxVR5VO3rdKZOEdp+xqFJ"}]}
    
    • 1
    5.4 创建Bucket

    image-20221030174328217

    image-20221030175318067

    image-20221030175340146

    5.5 上传文件

    image-20221030175458665

    image-20221030175515634

    6、SDK操作

    官方文档:https://docs.min.io/docs/

    在这里插入图片描述

    javaSDK:https://docs.min.io/docs/java-client-quickstart-guide.html

    image-20221030180104455

    maven依赖

     #低版本的okhttp会报错提示
    <dependency>
        <groupId>com.squareup.okhttp3groupId>
        <artifactId>okhttpartifactId>
        <version>4.9.0version>
    dependency>
    
    <dependency>
        <groupId>io.miniogroupId>
        <artifactId>minioartifactId>
        <version>8.4.2version>
        <exclusions>
            <exclusion>
                <artifactId>okhttpartifactId>
                <groupId>com.squareup.okhttp3groupId>
            exclusion>
        exclusions>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    image-20221030180131057

    测试文件上传 :

    import io.minio.BucketExistsArgs;
    import io.minio.MakeBucketArgs;
    import io.minio.MinioClient;
    import io.minio.UploadObjectArgs;
    import io.minio.errors.MinioException;
     
    import java.io.IOException;
    import java.security.InvalidKeyException;
    import java.security.NoSuchAlgorithmException;
     
    public class FileUploader {
     
        public static void main(String[] args) throws IOException, NoSuchAlgorithmException, InvalidKeyException {
            try {
                // Create a minioClient with the MinIO server playground, its access key and secret key.
                MinioClient minioClient =
                        MinioClient.builder()
                                .endpoint("http://192.168.56.10:9000")
                                .credentials("XO1JDovW2FTmGaBb", "uG6wMfylUnOVH5WzwxqnldOWw2dMshNX")
                                .build();
     
                // Make 'asiatrip' bucket if not exist.
                boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("public").build());
                if (!found) {
                    // Make a new bucket called 'asiatrip'.
                    minioClient.makeBucket(MakeBucketArgs.builder().bucket("public").build());
                } else {
                    System.out.println("Bucket 'public' already exists.");
                }
     
                // Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
                // 'asiatrip'.
                minioClient.uploadObject(
                        UploadObjectArgs.builder()
                                .bucket("public")
                                .object("credentials.json")
                                .filename("C:/Users/lai.huanxiong/Downloads/credentials.json")
                                .build());
                System.out.println("'C:/Users/lai.huanxiong/Downloads/credentials.json' is successfully uploaded as " + "object 'credentials.json' to bucket 'public'.");
            } catch (MinioException e) {
                System.out.println("Error occurred: " + e);
                System.out.println("HTTP trace: " + e.httpTrace());
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    image-20221030180213015
    文件上传成功展示

    image-20221030180237747

  • 相关阅读:
    【斗罗2】霍雨浩实力被否定,超级斗罗眼光被嘲,魂导院成功捡漏
    Zabbix 5.0 监控教程(二)
    BEV(Bird’s-eye-view)三部曲之一:综述
    Java基础 | 关于Final Static Abstract修饰需要注意的地方
    计算机毕业设计Python+django 网上外卖订餐系统(源码+系统+mysql数据库+Lw文档)
    待办-9月7号-11号(month9week2)
    【数据库】事务与并发控制
    可视化看板有那么多应用场景,该如何快速搭建?可视化工具该如何选择?
    在vue使用class选择器和下标更改点击列表样式
    泛函分析(一)
  • 原文地址:https://blog.csdn.net/qq_45738810/article/details/127611121