当前位置: 首页 > news >正文

中间件-安装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.lryc.cn/news/534961.html

相关文章:

  • 夸克网盘多链接批量保存,自动同步更新,批量分享
  • 2025清华:DeepSeek从入门到精通.pdf(附下载)
  • 【AIGC】在VSCode中集成 DeepSeek(OPEN AI同理)
  • android动态设置是否允许应用卸载
  • 基于微信小程序的博物馆预约系统的设计与实现
  • 使用NPOI自定义导出excel文件
  • 基于vue2 的 vueDraggable 示例,包括组件区、组件放置区、组件参数设置区 在同一个文件中实现
  • 使用rknn进行facenet部署
  • #渗透测试#批量漏洞挖掘#29网课交单平台 SQL注入
  • 百问网imx6ullpro调试记录(linux+qt)
  • 【python】3_容器
  • 数据结构与算法:动态规划dp:背包问题:理论基础(状态压缩/滚动数组)和相关力扣题(416. 分割等和子集、1049.最后一块石头的重量Ⅱ、494.目标和)
  • 数字游牧时代:IT人力外包的范式革命与文明重构
  • Qt - 地图相关 —— 3、Qt调用高德在线地图功能示例(附源码)
  • cloudberry测试
  • RocketMQ、RabbitMQ、Kafka 的底层实现、功能异同、应用场景及技术选型分析
  • UWB功耗大数据插桩调研
  • 郭羽冲IOI2024参赛总结
  • 03:Spring之Web
  • lx-music落雪音乐-开源免费听歌软件[提供最新音源使用, 支持全网平台, 支持无损音乐下载]
  • 129,【2】buuctf [BJDCTF2020]EzPHP
  • Python 面向对象(类,对象,方法,属性,魔术方法)
  • C语言之扫雷
  • 半导体制造工艺讲解
  • Ollama+DeepSeek R1+AnythingLLM训练自己的AI智能助手
  • 基于java手机销售网站设计和实现(LW+源码+讲解)
  • 5-R循环
  • Qlabel 每五个一换行 并、号分割
  • 加速PyTorch模型训练:自动混合精度(AMP)
  • 【py】python安装教程(Windows系统,python3.13.2版本为例)