前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 搭建 Minio 容器

Docker 搭建 Minio 容器

作者头像
OY
发布2022-11-14 19:54:58
1K0
发布2022-11-14 19:54:58
举报
文章被收录于专栏:OY_学习记录OY_学习记录

Docker 搭建 Minio 容器

一、简介

Minio 是一个基于 Apache License v2.0 开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据。 例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。

二、说明

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

Docker 官方镜像

1、寻找 Minio 镜像

image-20221030171846884
image-20221030171846884
image-20221030171917314
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
image-20221030172325134

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

代码语言:javascript
复制
docker images

3、创建目录

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

代码语言:javascript
复制
mkdir -p /mydata/minio/config
mkdir -p /mydata/minio/data

4、创建 Minio 容器并运行

多行模式

代码语言:javascript
复制
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"

单行模式

代码语言:javascript
复制
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
image-20221030173340049
5.1 创建用户
image-20221030173530837
image-20221030173530837
image-20221030173703313
image-20221030173703313
image-20221030173723526
image-20221030173723526
5.2 创建组
image-20221030173757688
image-20221030173757688
image-20221030173905313
image-20221030173905313
5.3 创建 accessKey 和 secretKey
image-20221030173959497
image-20221030173959497
image-20221030174122045
image-20221030174122045

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

代码语言:javascript
复制
{
  "console": [
    {
      "access_key": "KJ7ALNE1W5USGVEHAIQ3",
      "secret_key": "ToxjeRqqJ2CmRUhpMpdXxVR5VO3rdKZOEdp+xqFJ"
    }
  ]
}
5.4 创建 Bucket
image-20221030174328217
image-20221030174328217
image-20221030175318067
image-20221030175318067
image-20221030175340146
image-20221030175340146
5.5 上传文件
image-20221030175458665
image-20221030175458665
image-20221030175515634
image-20221030175515634

6、SDK 操作

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

image-20221030180041695
image-20221030180041695

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

image-20221030180104455
image-20221030180104455

maven 依赖

代码语言:javascript
复制
 #低版本的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
image-20221030180131057

测试文件上传 :

代码语言:javascript
复制
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());
        }
    }
}
image-20221030180213015
image-20221030180213015

文件上传成功展示

image-20221030180237747
image-20221030180237747
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker 搭建 Minio 容器
    • 一、简介
      • 二、说明
        • 1、寻找 Minio 镜像
        • 2、下载 Minio 镜像
        • 3、创建目录
        • 4、创建 Minio 容器并运行
        • 5、访问操作
        • 6、SDK 操作
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档