相关文章推荐
风度翩翩的莲藕  ·  .NET Aspire ...·  4 周前    · 
重感情的哑铃  ·  docker逃逸的几种方法以及其原理·  2 周前    · 
打酱油的猴子  ·  igraph首页、文档和下载 - ...·  1 年前    · 
儒雅的薯片  ·  React Redux 组件更新/渲染 ...·  1 年前    · 
另类的热水瓶  ·  bigru参数计算_手动计算参数个数,希望给 ...·  1 年前    · 
温暖的雪糕  ·  深入理解ReadDirectoryChang ...·  1 年前    · 
博学的警车  ·  第一章 R和RStudio - 知乎·  1 年前    · 
Code  ›  Docker 搭建 Minio 容器开发者社区
docker 容器技术
https://cloud.tencent.com/developer/article/2162806?areaSource=&traceId=
小胡子的木瓜
1 年前
作者头像
OY
0 篇文章

Docker 搭建 Minio 容器

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > OY_学习记录 > Docker 搭建 Minio 容器

Docker 搭建 Minio 容器

作者头像
OY
发布 于 2022-11-14 19:54:58
422 0
发布 于 2022-11-14 19:54:58
举报

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

3、创建目录

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

mkdir -p /mydata/minio/config
mkdir -p /mydata/minio/data

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"

单行模式

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"
  • 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-20221030173703313
image-20221030173723526

5.2 创建组

image-20221030173757688
image-20221030173905313

5.3 创建 accessKey 和 secretKey

image-20221030173959497
image-20221030174122045

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

{
  "console": [
      "access_key": "KJ7ALNE1W5USGVEHAIQ3",
      "secret_key": "ToxjeRqqJ2CmRUhpMpdXxVR5VO3rdKZOEdp+xqFJ"
}

5.4 创建 Bucket

image-20221030174328217
image-20221030175318067
image-20221030175340146

5.5 上传文件

image-20221030175458665
image-20221030175515634

6、SDK 操作

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

image-20221030180041695

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

image-20221030180104455

maven 依赖

 #低版本的okhttp会报错提示
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.9.0</version>
</dependency>
<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.4.2</version>
    <exclusions>
        <exclusion>
            <artifactId>okhttp</artifactId>
            <groupId>com.squareup.okhttp3</groupId>
        </exclusion>
    </exclusions>
</dependency>
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'.");
 
推荐文章
风度翩翩的莲藕  ·  .NET Aspire MySQL 数据库集成 - .NET Aspire | Microsoft Learn
4 周前
重感情的哑铃  ·  docker逃逸的几种方法以及其原理
2 周前
打酱油的猴子  ·  igraph首页、文档和下载 - 复杂网络处理包 - OSCHINA - 中文开源技术交流社区
1 年前
儒雅的薯片  ·  React Redux 组件更新/渲染 原理 connect之mapStateToProps 看这篇就够了!比中文文档好用! - 寒江孤影,江湖路人 - 博客园
1 年前
另类的热水瓶  ·  bigru参数计算_手动计算参数个数,希望给太过相信电脑的你有新启发_weixin_39890431的博客-CSDN博客
1 年前
温暖的雪糕  ·  深入理解ReadDirectoryChangesW - 简书
1 年前
博学的警车  ·  第一章 R和RStudio - 知乎
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号