中间件-安装Minio-集成使用(ubantu-docker)

目录

1、安装docer

2、运行以下命令拉取MinIO的Docker镜像

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

4、创建目录

5、创建Minio容器并运行

6、SDK操作

FileUploader.java


1、安装docer

参考这篇:Linux安装Docker

2、运行以下命令拉取MinIO的Docker镜像

docker pull minio/minio

默认拉取最新版本的镜像

docker pull minio/minio:RELEASE.2022-06-20T23-13-45Z.fips下载指定版本的Minio镜像 (xxx指具体版本号)
root@vims:~# docker pull minio/minio
Using default tag: latestlatest: Pulling from minio/minio
33a6235aa44d: Pull complete 
2a8ebf082d9f: Pull complete 
c7e616c20e34: Pull complete 
700d74ff97a3: Pull complete 
5732c23d1fd9: Pull complete 
b1abbd634381: Pull complete 
21574c930590: Pull complete 
816077889e53: Pull complete 
230293eed526: Pull complete 
b16ee0f758f1: Pull complete 
Digest: sha256:640c22768ed5dbc92eacc14502a1b06a1c708fa60431345c78dfc22917062e93
Status: Downloaded newer image for minio/minio:latest

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

docker images

root@vims:~# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
minio/minio   latest    4ab91b236c0e   2 days ago      180MB
hello-world   latest    d2c94e258dcb   21 months ago   13.3kB

4、创建目录

 mkdir -p /home/minio/config
 mkdir -p /home/minio/data

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

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

5、创建Minio容器并运行


多行模式 

docker run -p 9000:9000 -p 9090:9091 \--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 ":9001"

MINIO_ROOT_USER=minioadmin,这个参数是指定登录时的用户名为minioadmin,
MINIO_ROOT_PASSWORD=minioadmin,这个参数是指定登录时的密码为minioadmin,

下面是对这个命令的详细解释:

docker run:这是Docker命令行工具用来运行一个新容器的命令。

--name minio:这个参数为容器指定了一个名称,这里名称被设置为minio。使用名称可以更方便地管理容器。

-p 9000:9000:这个参数将容器内的9000端口映射到宿主机的9000端口。MinIO服务默认使用9000端口提供API服务。

-p 9090:9090:这个参数将容器内的9090端口映射到宿主机的9090端口。这是MinIO的控制台(Console)端口,用于访问MinIO的图形用户界面。

-d:这个参数告诉Docker以“detached”模式运行容器,即在后台运行。

-e "MINIO_ROOT_USER=minioadmin":设置环境变量MINIO_ROOT_USER,这是访问MinIO服务的用户名称,这里设置为minioadmin。

-e "MINIO_ROOT_PASSWORD=minioadmin":设置环境变量MINIO_ROOT_PASSWORD,这是访问MinIO服务的用户密码,这里设置为minioadmin。

-v /home/minio/data:/data:这个参数将宿主机的目录//home/minio/data挂载到容器的/data目录。MinIO会将所有数据存储在这个目录。

-v /home/minio/config:/root/.minio:这个参数将宿主机的目录//home/minio/config挂载到容器的/root/.minio目录。这个目录用于存储MinIO的配置文件和数据。

minio/minio:这是要运行的Docker镜像的名称,这里使用的是官方发布的MinIO镜像。

server /data:这是传递给MinIO程序的命令行参数,告诉MinIO以服务器模式运行,并且使用/data目录作为其数据存储位置。

--console-address ":9090":这个参数指定MinIO控制台服务的监听地址和端口。在这个例子中,它设置为监听所有接口上的9090端口。

--address ":9001":这个参数指定MinIO API服务的监听地址和端口。在这个例子中,它设置为监听所有接口上的9001端口。
 

root@vims:/home/minio# docker run -p 9000:9000 -p 9090:9091 \
>      --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 ":9001"
WARNING: Published ports are discarded when using host network mode
c54dd65a3855552ded53416963226a1e0ae7283613b072d17f77e8fab634bc13
root@vims:/home/minio# 
root@vims:/home/minio# docker ps 
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS     NAMES
c54dd65a3855   minio/minio   "/usr/bin/docker-ent…"   19 seconds ago   Up 18 seconds             minio

          

6、 访问web界面
容器启动之后,就可以通过访问http://192.168.200.128:9091来访问MinIO的Web界面,输入刚才设置的账号和密码进行登录。(我的虚拟机ip是192.168.200.128,这里输入自己的虚拟机ip即可)账号:minioadmin
密码:minioadmin

1、创建用户(点击identity->users->createUser)

2、创建组(groups->create Group)
3、创建accessKeys(Access Keys->create access key)
     填写 Access key, Secret key                

点击DownLoad for import 

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

{

        "url":"http://192.168.96.92:9090/api/v1/service-account-credentials",

        "accessKey":"124578",

        "secretKey":"vVaIqz8p42kBB9ePgcO4eeE6D4RveXZZJuP5mGoh",

        "api":"s3v4","

        path":"auto"

}

4、创建桶(Object Browser->Create Bucket)

 填写 Buckets Name,点击Create Buclet

上传文件

6、SDK操作

官方文档:Software Development Kits (SDK) — MinIO Object Storage for Linux

java文档

FileUploader.java


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("https://play.min.io").credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG").build();// Make 'asiatrip' bucket if not exist.boolean found =minioClient.bucketExists(BucketExistsArgs.builder().bucket("asiatrip").build());if (!found) {// Make a new bucket called 'asiatrip'.minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build());} else {System.out.println("Bucket 'asiatrip' already exists.");}// Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket// 'asiatrip'.minioClient.uploadObject(UploadObjectArgs.builder().bucket("asiatrip").object("asiaphotos-2015.zip").filename("/home/user/Photos/asiaphotos.zip").build());System.out.println("'/home/user/Photos/asiaphotos.zip' is successfully uploaded as "+ "object 'asiaphotos-2015.zip' to bucket 'asiatrip'.");} catch (MinioException e) {System.out.println("Error occurred: " + e);System.out.println("HTTP trace: " + e.httpTrace());}}
}

 

 Java Quickstart Guide — MinIO Object Storage for Linux

github 

https://github.com/minio/minio-java

参考:官网:MinIO Object Storage for Container — MinIO Object Storage for Container
参考:Docker 搭建 Minio 容器 (完整详细版)_docker minio-CSDN博客

参考:https://blog.csdn.net/BThinker/article/details/125412751

参考:https://blog.csdn.net/Keep__Me/article/details/135999640

参考:Docker部署Minio(详细步骤)_minio docker部署-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16580.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Notepad++ 编辑显示 MarkDown

Notepad 是一款免费的开源文本编辑器,专为 Windows 用户设计。它是替代记事本(Notepad)的最佳选择之一,因为它功能强大且轻量级。Notepad 支持多种编程语言和文件格式,并可以通过插件扩展其功能。 Notepad 是一款功能…

Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

【Android开发】Android Studio汉化

前言 该插件是官方支持插件,未对任何软件进行修改和破解 Android Studio 是基于 IntelliJ IDEA 社区版开发的集成开发环境(IDE),专门用于Android应用程序的开发。以下是为什么 Android Studio 能使用 IntelliJ IDEA 插件的原因&am…

七、I2C通信读取LM75B温度

7.1 概述 I2C(Inter-Integrated Circuit)是一种同步、多主从、串行通信协议,由飞利浦公司开发,主要用于短距离通信,尤其在集成电路之间。 7.1.1 主要特点 两线制:仅需SDA(数据线)…

CSS 小技巧 —— CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层

CSS 小技巧 —— CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层 1. 两个元素实现 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>纯 CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层</titl…

微信小程序医院挂号系统

第3章 系统设计 3.1系统体系结构 系统的体系结构非常重要&#xff0c;往往决定了系统的质量和生命周期。针对不同的系统可以采用不同的系统体系结构。本系统为微信小程序医院挂号系统&#xff0c;属于开放式的平台&#xff0c;所以在管理端体系结构中采用B/s。B/s结构抛弃了固…

开源堡垒机 JumpServer 社区版实战教程:一步步构建企业安全运维环境

文章目录 开源堡垒机 JumpServer 社区版实战教程&#xff1a;一步步构建企业安全运维环境一、访问JumpServer1.1 登录1.2 功能模块1.3 系统设置1.3.1 基本设置1.3.2 邮件设置 二、用户管理2.1 场景2.2 创建用户2.3 用户登录密码重置 三、资产管理3.1 准备工作3.2 登录控制台3.3…

小红书八股面经一份(JAVA开发)

1. zmysql索引结构 mysql索引底层采用的是b树的结构&#xff0c;一开始mysql的索引采用的是b树的结构&#xff0c;当数据量达到一定程度的时候&#xff0c;b树存在深度过大的问题&#xff0c;那么磁盘io次数就会飞速上升&#xff0c;导致查询效率慢。b树就很好的解决了这个问题…

redis 缓存击穿问题与解决方案

前言1. 什么是缓存击穿?2. 如何解决缓存击穿?怎么做?方案1: 定时刷新方案2: 自动续期方案3: 定时续期 如何选? 前言 当我们使用redis做缓存的时候,查询流程一般是先查询redis,如果redis未命中,再查询MySQL,将MySQL查询的数据同步到redis(回源),最后返回数据 流程图 为什…

路由过滤方法与常用工具

引言 在前面我们已经学习了路由引入&#xff0c;接下来我们就更进一步来学习路由过滤 前一篇文章&#xff1a;重发布&#xff1a;路由引入&#xff08;点击即可&#xff09; 路由过滤 定义&#xff1a;路由器在发布或者接收消息时&#xff0c;可能需要对路由信息进行过滤。 作用…

网络分析工具—WireShark的安装及使用

Wireshark 是一个广泛使用的网络协议分析工具&#xff0c;常被网络管理员、开发人员和安全专家用来捕获和分析网络数据包。它支持多种网络协议&#xff0c;能够帮助用户深入理解网络流量、诊断网络问题以及进行安全分析。 Wireshark 的主要功能 数据包捕获与分析&#xff1a; …

anolis os 8.9安装jenkins

一、系统版本 # cat /etc/anolis-release Anolis OS release 8.9 二、安装 # dnf install -y epel-release # wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo # rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.…

Java 进阶day14XML Dom4j 工厂模式 Base64

目录 知识点1、XML 概念XML约束 知识点2、XML解析 Dom4j&#xff08;Dom for java&#xff09;XPath 知识点3、工厂模式知识点4、Base64 知识点1、XML 概念 XML的全称为&#xff08;eXtensible Markup Language&#xff09;&#xff0c;是一种可扩展的标记语言。 XML的作用…

软件测试面试题及答案解析,2025最新版

1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行&#xff0c;即是通常说的软件的可移植性。 兼容的类型&#xff0c;如果细分的话&#xff0c;有平台的兼容&#xff0c;网络兼容&#xff0…

【云安全】云原生-K8S- kubeconfig 文件泄露

什么是 kubeconfig 文件&#xff1f; kubeconfig 文件是 Kubernetes 的配置文件&#xff0c;用于存储集群的访问凭证、API Server 的地址和认证信息&#xff0c;允许用户和 kubectl 等工具与 Kubernetes 集群进行交互。它通常包含多个集群的配置&#xff0c;支持通过上下文&am…

无人机遥感图像拼接及处理实践技术:生态环境监测、农业、林业等领域,结合图像拼接与处理技术,能够帮助我们更高效地进行地表空间要素的动态监测与分析

近年来&#xff0c;无人机技术在遥感领域的应用越来越广泛&#xff0c;尤其是在生态环境监测、农业、林业等领域&#xff0c;无人机遥感图像的处理与分析成为了科研和业务化工作中的重要环节。通过无人机获取的高分辨率影像数据&#xff0c;结合图像拼接与处理技术&#xff0c;…

网络工程师 (33)VLAN注册协议——GVRP协议

前言 VLAN注册协议——GVRP&#xff08;GARP VLAN Registration Protocol&#xff09;是一种用于在网络中动态管理VLAN成员关系的网络协议。 一、基本概念 GVRP是GARP&#xff08;Generic Attribute Registration Protocol&#xff0c;通用属性注册协议&#xff09;的一种具体应…

在实体机和wsl2中安装docker、使用GPU

正常使用docker和gpu&#xff0c;直接命令行安装dcoker和&#xff0c;nvidia-container-toolkit。区别在于&#xff0c;后者在于安装驱动已经cuda加速时存在系统上的差异。 1、安装gpu驱动 在实体机中&#xff0c;安装cuda加速包&#xff0c;我们直接安装 driver 和 cuda 即可…

使用stm32控制esp01s

title: 使用stm32控制esp01s date: 2025年2月9日 18:41:20 tags: 单片机模块使用 categories: stm32 description: 使用stm32控制esp01s连接WiFi查看内容等操作 前言 使用stm32f103控制esp01s是步入物联网的第一步&#xff0c;接下来的文章会详细讲解如何使用stm32控制esp01s…

PT8042 双触控双输出触摸 IC

1. 产品概述 PT8042 是一款电容式触摸控制 ASIC &#xff0c;支持双通道触摸输入和双路同步开关输出&#xff0c;可引脚配置 同步输出的有效电平。 PT8042 实现触摸同步开关控制。适用于雾化器、车载用品、电子玩具、 消费类电子产品等领域&#xff0c;具有低功耗、高抗…