• Docker 搭建 Minio 容器 (完整详细版)


    Docker 安装 (完整详细版)

    Docker 日常命令大全(完整详细版)

    简介: 

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

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

    说明:

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

    Docker官方镜像 

    1、寻找Minio镜像  

      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指具体版本号)

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

    docker images

     3、创建目录

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

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

    1. mkdir -p /home/minio/config
    2. mkdir -p /home/minio/data

     4、创建Minio容器并运行

    多行模式 

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

    单行模式 

    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 /home/minio/data:/data      -v /home/minio/config:/root/.minio      minio/minio server      /data --console-address ":9090" -address ":9000"
    

    9090端口指的是minio的客户端端口

    MINIO_ACCESS_KEY :账号

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

     5、访问操作

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

     创建用户

     

    创建组

    创建accessKey和secretKey 

     点击下载

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

    {"url":"http://192.168.124.132:9000","accessKey":"XO1JDovW2FTmGaBb","secretKey":"uG6wMfylUnOVH5WzwxqnldOWw2dMshNX","api":"s3v4","path":"auto"}

    创建Bucket

    上传文件

     

     6、SDK操作

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

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

     maven依赖

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

    测试文件上传 

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

     文件上传成功展示

    至此,Docker搭建Minio服务器和简单操作完成!!!

  • 相关阅读:
    Python网络爬虫实战:从入门到进阶
    Ph.D,一个Permanent head Damage的群体
    WWW::Mechanize库使用HTTP如何做爬虫?
    【汇编】第一个汇编程序(学习笔记)
    SQL 查询并拼接字段的两种方法主要用于多级分类表格显示(一级/二级/三级/)
    Java进阶篇--LockSupport
    Linux XWindow的安装和配置
    Tomcat安装及配置教程
    一种基于动态代理的通用研发提效解决方案
    ETL中元数据处理的方式
  • 原文地址:https://blog.csdn.net/BThinker/article/details/125412751