中间件-安装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: latest

latest: 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博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ffmpeg学习:ubuntu下编译Android版ffmpeg-kit

文章目录 前言一. 配置环境1.1 虚拟机版本1.2 安装Android环境1.2.1 Android SDK安装1.2.2 Android NDK安装 1.3 编译前的准备工作1.3.1 libtasn1-1安装1.3.2 meson安装1.3.3 harfbuzz下载 二. 编译ffmpeg-kit三. 总结 前言 ffmpeg-kit是一款跨多个平台的,用于在应…

【全球人口数据集】全球人口密度数据集GPWv4

目录 数据概述数据处理方法数据下载参考GPWv4: Population Density, Revision 11 是由 NASA Socioeconomic Data and Applications Center (SEDAC) 提供的全球人口密度数据集,旨在支持社会经济和环境研究。 数据概述 Gridded Population of the World, Version 4 (GPWv4): Po…

PyTorch 中 `torch.cuda.amp` 相关警告的解决方法

在最近的写代码过程中,遇到了两个与 PyTorch 的混合精度训练相关的警告信息。这里随手记录一下。 警告内容 警告 1: torch.cuda.amp.autocast FutureWarning: torch.cuda.amp.autocast(args...) is deprecated. Please use torch.amp.autocast(cuda, args...) i…

NLP面试之-激活函数

一、动机篇 1.1 为什么要有激活函数? 数据角度:由于数据是线性不可分的,如果采用线性化,那么需要复杂的线性组合去逼近问题,因此需要非线性变换对数据分布进行重新映射;线性模型的表达力问题:由于线性模型…

四、自然语言处理_08Transformer翻译任务案例

0、前言 在Seq2Seq模型的学习过程中,做过一个文本翻译任务案例,多轮训练后,效果还算能看 Transformer作为NLP领域的扛把子,对于此类任务的处理会更为强大,下面将以基于Transformer模型来重新处理此任务,看…

关于conda换镜像源,pip换源

目录 1. 查看当前下载源2. 添加镜像源2.1清华大学开源软件镜像站2.2上海交通大学开源镜像站2.3中国科学技术大学 3.删除镜像源4.删除所有镜像源,恢复默认5.什么是conda-forge6.pip换源 1. 查看当前下载源 conda config --show channels 如果发现多个 可以只保留1个…

因果机器学习(CausalML)前沿创新思路

结合了传统因果推断与机器学习的因果机器学习是目前AI领域的前沿研究方向,其核心优势在于将因果逻辑融入数据驱动模型,从根本上解决了传统方法的缺陷。因此,它也是突破传统机器学习瓶颈的关键方向,不仅当下热度高,在未…

网络防御高级02-综合实验

web页面: [FW]interface GigabitEthernet 0/0/0 [FW-GigabitEthernet0/0/0]service-manage all permit 需求一,接口配置: SW2: [Huawei]sysname SW2 1.创建vlan [sw2]vlan 10 [sw2]vlan 20 2.接口配置 [sw2]interface GigabitEther…

【devops】 Git仓库如何fork一个私有仓库到自己的私有仓库 | git fork 私有仓库

一、场景说明 场景: 比如我们Codeup的私有仓库下载代码 放入我们的Github私有仓库 且保持2个仓库是可以实现fork的状态,即:Github会可以更新到Codeup的最新代码 二、解决方案 1、先从Codeup下载私有仓库代码 下载代码使用 git clone 命令…

一竞技瓦拉几亚S4预选:YB 2-0击败GG

在2月11号进行的PGL瓦拉几亚S4西欧区预选赛上,留在欧洲训练的YB战队以2-0击败GG战队晋级下一轮。双方对阵第二局:对线期YB就打出了优势,中期依靠卡尔带队进攻不断扩大经济优势,最终轻松碾压拿下比赛胜利,以下是对决战报。 YB战队在天辉。阵容是潮汐、卡尔、沙王、隐刺、发条。G…

ATF系统安全从入门到精通

CSDN学院课程连接:https://edu.csdn.net/course/detail/39573

Linux内核实时机制x - 中断响应测试 Cyclictest分析1

Linux内核实时机制x - 中断响应测试Cyclitest 1 实时性测试工具 rt-test 1.1 源码下载 1.下载源码: ~/0-code/5.15$ git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git 正克隆到 rt-tests... remote: Enumerating objects: 5534, done. remot…

实现限制同一个账号最多只能在3个客户端(有电脑、手机等)登录(附关键源码)

如上图,我的百度网盘已登录设备列表,有一个手机,2个windows客户端。手机设备有型号、最后登录时间、IP等。windows客户端信息有最后登录时间、操作系统类型、IP地址等。这些具体是如何实现的?下面分别给出android APP中采集手机信…

如何获取,CPU,GPU,硬盘,网卡,内存等硬件性能监控与各项温度传感器

首先需要下载 OpenHardwareMonitorServer 这是一个基于OpenHardwareMonitor 的 Web 服务器。可以让任何语言都可以获取硬件信息和值,OpenHardwareMonitorServer 是没有UI界面的因此它可以当成控制台程序使用。 该程序可用参数如下 参数:需要管理员权限…

解锁大语言模型潜能:KITE 提示词框架全解析

大语言模型的应用日益广泛。然而,如何确保这些模型生成的内容在AI原生应用中符合预期,仍是一个需要不断探索的问题。以下内容来自于《AI 原生应用开发:提示工程原理与实战》一书(京东图书:https://item.jd.com/1013604…

C++STL容器之map的使用及复现

map 1. 关联式容器 vector、list、deque、forward_list(C11) 等STL容器,其底层为线性序列的数据结构,里面存储的是元素本身,这样的容器被统称为序列式容器。而 map、set 是一种关联式容器,关联式容器也是用来存储数据的&#xf…

网络工程师 (30)以太网技术

一、起源与发展 以太网技术起源于20世纪70年代,最初由Xerox公司的帕洛阿尔托研究中心(PARC)开发。最初的以太网采用同轴电缆作为传输介质,数据传输速率为2.94Mbps(后发展为10Mbps),主要用于解决…

30天开发操作系统 第 20 天 -- API

前言 大家早上好,今天我们继续努力哦。 昨天我们已经实现了应用程序的运行, 今天我们来实现由应用程序对操作系统功能的调用(即API, 也叫系统调用)。 为什么这样的功能称为“系统调用”(system call)呢?因为它是由应用程序来调用(操作)系统中的功能来完…

Java面试题及答案整理( 2023年 6 月最新版,持续更新)

秋招金九银十快到了,发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全~ 这套互联网 Java 工程师面试题包括了:MyBatis、ZK、Dubbo、EL、Redis、MySQL、并发编程、Java面试、Spring、微服务、Linux、Spri…

查询语句来提取 detail 字段中包含 xxx 的 URL 里的 commodity/ 后面的数字串

您可以使用以下 SQL 查询语句来提取 detail 字段中包含 oss.kxlist.com 的 URL 里的 commodity/ 后面的数字串&#xff1a; <p><img style"max-width:100%;" src"https://oss.kxlist.com//8a989a0c55e4a7900155e7fd7971000b/commodity/20170925/20170…