我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MinIO存储在docker中安装及使用的方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MinIO存储在docker中安装及使用的方法是什么

本篇内容主要讲解“MinIO存储在docker中安装及使用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MinIO存储在docker中安装及使用的方法是什么”吧!

    MinIO存储在docker安装及使用

    MinIO

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

    MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL

    docker 安装Minio

    安装docker镜像

    # docker安装镜像docker pull minio/minio

    容器运行方式① 和 容器运行方式② 选择一种就好。

    运行容器方式①

    # 后台运行容器docker run -p 9000:9000 --name storage -di -v /storage/data:/data -v /storage/config:/root/.minio --restart=always minio/minio server /data1,进入容器docker exec -it storage sh2,查看配置文件中的key值cat /data/.minio.sys/config/config.json |grep Key“accessKey”: “507LX5P57F99DNEVF1GH”,“secretKey”: “Kc2tllnd9FQrgTzu0RSohir4B4svh3cLiueGZR5x”,“routingKey”: “”,

    运行容器方式②

    # 后台运行容器方式docker run -p 9000:9000 --name storage -di --restart=always \  -e "MINIO_ACCESS_KEY=superzheng" \  -e "MINIO_SECRET_KEY=storage/File" \  -v /storage/data:/data \  -v /storage/config:/root/.minio \  minio/minio server /data  # -p 端口映射  将外部端口 映射到 容器内部端口  # --name 自定义容器名称# -di 后台运行的方式运行# --restart=always  一旦docker重启或者开启时,也自动启动镜像# -e 设置系统变量  在这里是设置Minio的ACCESS_KEY和SECRET_KEY# -v 挂载文件  将系统文件  映射到  容器内部对应的文件夹

    这是安装成功的日志:

    MinIO存储在docker中安装及使用的方法是什么

    更多信息:请访问官网 https://docs.min.io/cn/

    java代码操作

    package cn.mesmile.oss.minio;import cn.hutool.core.util.StrUtil;import cn.mesmile.oss.domain.FileInfoResp;import cn.mesmile.oss.exception.BucketNotExistException;import cn.mesmile.oss.exception.ContentTypeException;import cn.mesmile.oss.exception.FileSizeMaxException;import io.minio.MinioClient;import io.minio.Result;import io.minio.messages.DeleteError;import io.minio.policy.PolicyType;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartFile;import java.io.InputStream;@Componentpublic class FileService {        @Value("${minio.endpoint}")    private  String endpoint;        @Value("${minio.access-key}")    private  String accessKey;        @Value("${minio.secret-key}")    private  String secretKey;    // 上传的最大限制 10 M    private static final long MAX_SIZE =1024*1024*100;        public FileInfoResp uploadImage(String bucketName, MultipartFile file) throws Exception{        String contentType = file.getContentType();        // image/png        if (!StrUtil.containsAny(contentType,"image")) {            throw new ContentTypeException("文件类型错误,请上传图片文件。");        }        return uploadFile(bucketName,file,"image");    }        public FileInfoResp uploadFile(String bucketName, MultipartFile file) throws Exception {        String contentType = file.getContentType();        return uploadFile(bucketName,file,contentType);    }        public Iterable<Result<DeleteError>> deleteFileSingle(String bucketName, String objectName) throws Exception {        return deleteFile(bucketName,objectName,null);    }        public Iterable<Result<DeleteError>> deleteFileBath(String bucketName, Iterable<String> objectNames) throws Exception {        return deleteFile(bucketName,null,objectNames);    }        public void deleteBucket(String bucketName) throws Exception {        MinioClient minioClient = new MinioClient(endpoint,accessKey,secretKey);        if (!minioClient.bucketExists(bucketName)) {            throw new BucketNotExistException("桶不存在");        }        minioClient.removeBucket(bucketName);    }        private Iterable<Result<DeleteError>> deleteFile(String bucketName, String objectName,Iterable<String> objectNames) throws Exception {        MinioClient minioClient = new MinioClient(endpoint,accessKey,secretKey);        if (!minioClient.bucketExists(bucketName)) {            throw new BucketNotExistException("桶不存在");        }        if (objectNames != null) {            return minioClient.removeObject(bucketName, objectNames);        } else {            minioClient.removeObject(bucketName, objectName);            return null;        }    }        private FileInfoResp uploadFile(String bucketName, MultipartFile file, String prefix) throws Exception {        if (file.getSize() > MAX_SIZE ) {           throw new FileSizeMaxException("文件过大,超过限制大小:"+MAX_SIZE/(1024*1024.0)+" M");        }        MinioClient minioClient = new MinioClient(endpoint,accessKey,secretKey);        minioClient.setBucketPolicy(bucketName,prefix, PolicyType.READ_WRITE);        // 检查桶是否存在,若不存在则创建一个        if (!minioClient.bucketExists(bucketName)) {            minioClient.makeBucket(bucketName);        }        InputStream inputStream = file.getInputStream();        String contentType = file.getContentType();        String filename = file.getOriginalFilename();        String objectName = prefix + "/" +filename;        // 上传文件        minioClient.putObject(bucketName,objectName,inputStream,contentType);        return FileInfoResp.builder()                .bucketName(bucketName)                .fileName(filename)                .objectName(objectName)                .contentType(contentType)                .prefix(prefix)                .url(endpoint + "/" + bucketName + "/" + objectName)                .build();    }}

    Docker-compose安装部署MinIO存储服务

    环境准备

    拉取minio的docker镜像:docker pull minio/minio

    创建挂载目录:

    [root@test data]# mkdir /mnt/data[root@test data]# pwd/mnt/data[root@test data]# cd /home/app/minio/[root@test minio]# lsdocker-compose.yaml  minio.tar.gz

    编写docker-compose.yaml文件:

    [root@test minio]# cat docker-compose.yamlversion: '3'services:  miniocheck:    image: minio/minio:amd64    command: server /data --console-address ":9001"    volumes:      - /mnt/data:/data # 持久化地址    ports:      - "9000:9000" # 绑定端口      - "9001:9001"    container_name: minio    restart: always    environment:      MINIO_ROOT_USER: admin # 账号      MINIO_ROOT_PASSWORD: gbase;123 #密码

    command指令中添加--console-address参数,否则浏览器访问控制台自动跳转端口导致无法访问,查看日志可看到如下信息:

    [root@test minio]# docker-compose logs -fAttaching to miniominio         | API: http://172.24.0.2:9000  http://127.0.0.1:9000minio         |minio         | Console: http://172.24.0.2:34327 http://127.0.0.1:34327minio         | minio         | Documentation: https://docs.min.iominio         |minio         | WARNING: Console endpoint is listening on a dynamic port (34327), please use --console-address ":PORT" to choose a static port.minio         | Exiting on signal: TERMINATED

    启动容器并访问

    启动容器,查看容器状态:

    [root@test minio]# docker-compose up -dCreating network "minio_default" with the default driverCreating minio ... done[root@test minio]# docker ps -aCONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS                             PORTS                                                                                                                                 NAMESa5464ecaac1b   minio/minio:amd64      "/usr/bin/docker-ent…"   5 seconds ago   Up 3 seconds                       0.0.0.0:9000-9001->9000-9001/tcp, :::9000-9001->9000-9001/tcp                                                                         minio01f5e4eb4004   dperson/samba:latest   "/sbin/tini -- /usr/…"   3 days ago      Up 24 seconds (health: starting)   0.0.0.0:139->139/tcp, :::139->139/tcp, 0.0.0.0:137-138->137-138/udp, :::137-138->137-138/udp, 0.0.0.0:445->445/tcp, :::445->445/tcp   samba_samba_1[root@test minio]# docker-compose logs -fAttaching to miniominio         | API: http://172.19.0.2:9000  http://127.0.0.1:9000minio         |minio         | Console: http://172.19.0.2:9001 http://127.0.0.1:9001minio         |minio         | Documentation: https://docs.min.io

    浏览器访问控制台:

    MinIO存储在docker中安装及使用的方法是什么

    输入docker-compose.yaml文件中自定义的账号密码:

    MinIO存储在docker中安装及使用的方法是什么

    到此,相信大家对“MinIO存储在docker中安装及使用的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    MinIO存储在docker中安装及使用的方法是什么

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    MinIO存储在docker中安装及使用的方法是什么

    本篇内容主要讲解“MinIO存储在docker中安装及使用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MinIO存储在docker中安装及使用的方法是什么”吧!MinIO存储在do
    2023-07-05

    MinIO存储在docker中安装及其使用方式

    这篇文章主要介绍了MinIO存储在docker中安装及其使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-14

    docker安装mongoDB及使用方法是什么

    这篇文章主要介绍“docker安装mongoDB及使用方法是什么”,在日常操作中,相信很多人在docker安装mongoDB及使用方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”docker安装mon
    2023-07-05

    Linux安装使用docker的方法是什么

    这篇文章主要讲解了“Linux安装使用docker的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux安装使用docker的方法是什么”吧!一.安装dockerDocker要
    2023-06-22

    ubuntu中安装docker的方法是什么

    这篇文章主要介绍“ubuntu中安装docker的方法是什么”,在日常操作中,相信很多人在ubuntu中安装docker的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ubuntu中安装docker
    2023-07-04

    docker中redis安装的方法是什么

    在Docker中安装Redis可以通过Docker Hub上提供的官方Redis镜像来实现。以下是基本的安装步骤:拉取Redis官方镜像:docker pull redis运行Redis容器:docker run --name my-red
    docker中redis安装的方法是什么
    2024-04-09

    docker lnmp安装及部署的方法是什么

    安装和部署 Docker 上的 LNMP(Linux、Nginx、MySQL、PHP)环境可以按照以下步骤进行:1. 安装 Docker:根据操作系统的不同,选择合适的方式安装 Docker。可以在 Docker 官方网站(https://
    2023-10-10

    ​Cassandra安装及使用的方法是什么

    Cassandra安装前提条件:Linux系统,Java8+,SSH权限步骤:创建cassandra用户下载和解压Cassandra设置环境变量配置cassandra.yaml和jvm.options启动和使用:启动Cassandra创建密钥空间和表插入和查询数据停止Cassandra监控Cassandra(nodetool)
    ​Cassandra安装及使用的方法是什么
    2024-04-13

    SVN安装及使用的方法是什么

    SVN(Subversion)是一种版本控制系统,用于管理文件和目录的更改。下面是安装和使用SVN的一般步骤:安装SVN:1. 下载SVN安装包:可以从官方网站(https://subversion.apache.org/packages.
    2023-08-15

    intouch安装及使用的方法是什么

    要安装和使用InTouch,您需要按照以下步骤进行操作:1. 下载InTouch软件:您可以从Wonderware官方网站或其他可信来源下载InTouch软件的安装程序。确保下载与您的操作系统兼容的版本。2. 运行安装程序:双击下载的安装程
    2023-09-21

    ​Couchbase安装及使用的方法是什么

    Couchbase安装与使用指南下载并安装CouchbaseServer,满足先决条件(处理器、内存、磁盘空间)。启动CouchbaseServer服务。连接到Server,创建数据库(桶)。创建文档并将其存储在数据库中。通过索引管理和查询来优化数据检索。最佳实践:优化数据模型,使用索引,监控性能。利用复制功能提高数据冗余和可用性。定期备份数据以确保数据安全。参考来源:Couchbase文档Couchbase教程Couchbase社区论坛
    ​Couchbase安装及使用的方法是什么
    2024-04-11

    kafka安装及使用的方法是什么

    Kafka是一个分布式流处理平台,用于发布和订阅流数据,它具有高吞吐量、可扩展性和容错性等特点。下面是Kafka的安装和使用方法:安装Kafka:1. 下载Kafka二进制文件:可以从Kafka官方网站(https://kafka.apac
    2023-10-08

    ​MongoDB安装及使用的方法是什么

    MongoDB安装和使用指南本文提供详细步骤来安装MongoDB,包括Linux/macOS和Windows系统的说明。还涵盖了MongoDB基本用法,包括启动、连接、创建数据库和集合,以及执行查询和更新操作。本文还提供了有关高级查询、聚合、索引和备份/恢复的信息,帮助用户充分利用MongoDB。
    ​MongoDB安装及使用的方法是什么
    2024-04-13

    zencart安装及使用的方法是什么

    以下是Zencart安装及使用的方法:1. 下载Zencart软件包并解压缩。2. 将解压缩后的文件上传到您的网站根目录或子目录中。3. 创建一个MySQL数据库并为其分配一个用户。4. 在浏览器中输入您的网站地址,将会看到Zencart的
    2023-06-03

    php pecl安装及使用的方法是什么

    PECL (PHP Extension Community Library) 是一个 PHP 库,用于扩展 PHP 的功能。下面是如何安装和使用 PECL 扩展的方法:安装 PECL 扩展:首先,确保您的服务器上已经安装了 PHP 和 PE
    php pecl安装及使用的方法是什么
    2024-03-01

    redis-dump安装及使用的方法是什么

    要安装和使用redis-dump,可以按照以下步骤进行操作:首先,通过npm安装redis-dump模块:npm install -g redis-dump在命令行中使用redis-dump命令导出redis数据库的数据:redis-dum
    redis-dump安装及使用的方法是什么
    2024-04-09

    MySQL Workbench安装及使用的方法是什么

    MySQL Workbench是MySQL官方提供的数据库管理工具,用于连接、设计数据库、执行SQL查询等操作。下面是MySQL Workbench的安装及使用方法:安装MySQL Workbench:打开MySQL官网(https://
    MySQL Workbench安装及使用的方法是什么
    2024-03-08

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录