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

devtools/2025/2/12 8:44:21/

目录

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.ppmy.cn/devtools/158159.html

相关文章

U3D支持webgpu阅读

https://docs.unity3d.com/6000.1/Documentation/Manual/WebGPU-features.html 这里看到已经该有的差不多都有了 WOW VFX更是好东西 https://unity.com/cn/features/visual-effect-graph 这玩意儿化简了纯手搓一个特效的流程 如果按原理说就是compute shader刷position&#…

大语言模型安全威胁深度解析:攻击手法与实战案例

一、OWASP Top 10威胁的扩展攻击方法与案例 1. Prompt Injection(提示注入) 攻击方法分类: 直接注入:通过显式指令覆盖系统提示词,例如添加"忽略之前的规则"类指令。间接注入:通过隐藏语义触发模型漏洞,如利用多模态输入(图片中的隐藏文字)。编码混淆:使用…

图像处理技术和应用

图像处理技术是一种依托计算机和相关算法,对图像进行深度处理、分析及改变的技术。主要包括图像数字化、图像增强和复原、图像数据编码、图像分割和图像识别等。它不仅能够从静态图像中提取关键信息,还能改变图像的外观或特征,并进一步检测、…

(定时器,绘制事件,qt简单服务器的搭建)2025.2.11

作业 笔记&#xff08;复习补充&#xff09; 1> 制作一个闹钟软件 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> //按钮类 #include <QTimer> //定时器类 #include <QTime> //…

基于JavaWeb开发的Java+Jsp+SpringMVC漫威手办商城系统设计和实现

基于JavaWeb开发的JavaJspSpringMVC漫威手办商城系统设计和实现 &#x1f345; 作者主页 网顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种…

Conda命令整理

Conda 是一个功能强大的包和环境管理工具&#xff0c;广泛用于 Python 开发中。除了基本的包和环境管理功能外&#xff0c;Conda 还提供了许多高级用法和技巧&#xff0c;帮助用户更高效地管理和维护 Python 环境。 1. 管理 Conda 本身 命令描述示例conda --version查看 Cond…

大模型基本原理(二)——ChatGPT的工作原理

如何得到一个ChatGPT&#xff1f; 1、无监督预训练&#xff1a;通过大量的文本数据集进行无监督训练&#xff0c;得到一个基座模型&#xff08;只会续写文本&#xff09; 2、监督微调&#xff1a;通过一些人类撰写的高质量对话数据对基座模型进行监督微调&#xff0c;得到一个…

Vue3(1)

一.create-vue // new Vue() 创建一个应用实例 > createApp() // createRouter() createStore() // 将创建实例进行了封装&#xff0c;保证每个实例的独立封闭性import { createApp } from vue import App from ./App.vue// mount 设置挂载点 #app (id为app的盒子) createA…