首页 > 其他分享 >Docker 创建s3 对象存储服务

Docker 创建s3 对象存储服务

时间:2024-07-09 17:10:14浏览次数:14  
标签:存储 minio s3 bucket S3 对象 Docker MinIO

Docker 创建s3 对象存储服务

docker 环境不同,可能有些差异

主要是因为 一些服务需要用到s3 存储,因此使用docker 部署服务;

MinIO S3 对象存储具有以下一些优势:

  • 简单性与轻量级:部署和维护简单,可以轻松地在各种环境中运行,包括裸金属、Docker 和 Kubernetes 等。
    • 高性能:专为高吞吐量和低延迟而设计,适合大数据和 AI/ML 等工作负载。在标准硬件上,其读/写速度可达 183GB/s 和 171GB/s,能够作为主要存储层运行,处理各种复杂工作负载,也可作为 Hadoop HDFS 的替代品。 - 分布式对象存储:支持分布式模式,可跨多个节点扩展存储和容错能力,能在多个驱动器或服务器之间划分数据,提供冗余和高可用性。
    • 数据保护:提供了诸如纠删码(erasure coding)和数据腐化保护(bitrot protection)等功能,以防止数据丢失和损坏。纠删码将对象条带化为具有用户可配置冗余级别的数据和奇偶校验块,可独立修复多个对象,在最大奇偶校验为 N/2 的情况下,仅使用 ((N/2)+1) 个操作驱动器即可进行不间断的读写操作。而对 HighwayHash 算法的优化实现能确保即时捕获和修复损坏的对象,通过在读取时计算哈希并在写入时(从应用程序、网络到内存/驱动器)进行验证来确保端到端的完整性。
    • 安全性:默认情况下,所有数据通过 TLS 进行加密。此外,还支持服务器端和客户端加密,以及身份验证和授权。它支持多种复杂的服务器端加密方案,使用密钥管理系统(KMS)来支持 SSE-S3,加密对象使用Authenticated Encryption with Associated Data(AEAD)服务器端加密进行防篡改。同时,MinIO 支持身份管理中最先进的标准,与 OpenID 连接兼容提供商以及关键的外部 IDP 供应商集成,访问策略细粒度且高度可配置。
    • Amazon S3 API 兼容性:完全支持 Amazon S3 的 v2 和 v3 API,这意味着任何基于 S3 的应用程序或工具都能轻松与其集成。若后续想将对象存储迁移到云上,只要云厂商支持 S3 标准,应用程序无需重新开发。 - 开源:MinIO 是完全开源的,遵循 Apache License v2.0 协议,用户可以自由地使用、修改和分发它。
    • 安装部署维护简单:安装过程类似黑盒,无需深入了解其架构,也不用进行复杂组装,可做到开箱即用。配置选项和变化数量少,系统管理任务接近于零,故障路径也更少。升级通过简单命令即可完成,且无需停机,能大大降低使用和运维成本。 - 支持多语言:提供了几乎所有主流开发语言的 SDK 以及相应文档。
    • 自带管理界面:服务安装后,可直接通过浏览器登录系统,完成文件夹、文件的管理,方便使用。
    • 站点复制:扩展了存储桶复制的功能,能使多个 MinIO 部署链接在一起,并让存储桶、对象和身份和访问管理(IAM)设置在所有连接的站点之间保持同步。 不过,MinIO 也存在一些局限性,例如它不支持动态增加节点,目前只能在新增节点后手动重启系统才生效,系统会自动平衡数据。在考虑使用时,需要根据具体的业务需求和场景来评估其是否适合。

MinIO 搭建

官网:https://min.io/

官网上有多个平台的安装说明:

macPic_2024-07-09 15.10.20

官方的下载页面文档并不 完全;

实际的部署还很可能是需要添加一些额外命令:

docker run -p 9000:9000 -p 9001:9001 --name minio -d --restart=always \
           -e "MINIO_ROOT_USER=user" \
           -e "MINIO_ROOT_PASSWORD=password" \
           -v /Volumes/secDisk/WorkSpace/minio/config:/root/.minio \
           -v /Volumes/secDisk/WorkSpace/minio/data:/data \
            minio/minio server /data --console-address ":9001"

s3服务数据是以桶 bucket 为单位,我们需要先创建一个bucket ,creat bucket :

macPic_2024-07-09 15.25.04

macPic_2024-07-09 15.26.27

version 版本控制, object locking 对象锁定, quota 配额 , 这写在你看不明白啥意思的前提下, 不用开;只需要创建 个名字就好。

  1. 创建完bucket 之后进入bucket 的设置,可以看到概述中的 访问策略 access police 是私有的, 需要改成对外public;

  2. 之后到Access Keys 创建一个访问密钥,需要保存好自己的密钥:access key, secret key

  3. 到配置 Configuration 中设置区域 直接填cn 就可以

自此存储服务基本设置完成;

我们所需要用到的数据如下:

地址:127.0.0.1:9000

bucket name: sec

access key:xxxx

secret key :xxxx

region: cn

macPic_2024-07-09 15.29.58

macPic_2024-07-09 15.34.09

macPic_2024-07-09 15.34.28

备注:

可能遇到的问题:Docker的源 可能访问不到, 近期因为被墙了,要吗需要更换源,要么需要科学手段;

标签:存储,minio,s3,bucket,S3,对象,Docker,MinIO
From: https://www.cnblogs.com/alerson/p/18292322/docker-creates-s3-object-storage-services-20tr2

相关文章

  • 容器之docker compose
    DockerCompose是一个用于定义和运行多容器Docker应用的工具。通过一个YAML文件,您可以配置应用程序需要的所有服务,并使用单个命令来创建和启动这些服务。以下是对DockerCompose的详细介绍:核心概念服务(Services)服务是一个运行容器的抽象。每个服务都运行一个镜像,并且......
  • Docker logs命令详解
    一、常用命令可以查看命令用法dockerlogs--help2.查看日志更多详情dockerlogs--detailsredis跟踪日志输出(–follow,-f)dockerlogs--followredisdockerlogs-fredis显示自时间戳以来的日志(–since)日期格式需要看下dockerlogs--help给出的样式d......
  • docker-compose创建haproxy教程
    本文主要讲解通过docker-compose创建haproxy并进行代理一、haproxy简介HAProxy是一款基于事件驱动、单进程模型设计的四层与七层负载均衡器,它能够在TCP/UDP层面以及HTTP(S)等应用层协议上实现高效的流量分发。HAProxy不仅适用于Web服务器负载均衡,还能应用于数据库、邮件服务器......
  • docker 设置日志大小限制
    docker设置日志大小限制防止docker运行时使用df-h时候查看占用会将固态硬盘占用满overlay占用比较高检查overlay占用高的方法:每次创建一个容器时,都会有一些文件和目录被创建,例如:/var/lib/docker/containers/ID目录,如果容器使用了默认的日志模式,他的所有日志都会以JSON形......
  • 九,MYSQL之存储过程,实际就是用slq写函数,封装方法
    目录一,概念    1,介绍.    2,特性    3,作用二,格式    简单的存储过程案例基本格式:三,变量    1,局部变量        2,变量赋值     3,会话变量 3,系统变量四,参数    1,in参数   ......
  • nvidia docker Cannot load libnvcuvid.so.1
    问题使用docker对runtime进行封装,程序需要用到GPU且在host正常运行,在容器内则报错:Cannotloadlibnvcuvid.so.1[hevc_cuvid@0x559da3fbd80]Failedloadingnvcuvid.terminatecalledafterthrowinganinstanceof'std::runtime_error'what():failedtoopenavcod......
  • Docker日志批量清理
    转发:原文:https://blog.csdn.net/u013737132/article/details/134639909Docker容器日志查看查看所有容器数据大小并按倒序排列:du-d1-h/var/lib/docker/containers|sort-rhdu:用于估算文件或目录空间使用量。-d1:仅显示深度为1的目录,即只显示直接子目录的信息。......
  • 算法题里存储数据的方式(C++)
    这里分享的不是如邻接矩阵邻接表的算法存储,仅仅是一些特殊数据的简易存储,以方便操作1、map<int,vector<int>>mp当给出很多串数字,每一串数字都需要单数放一个一维数组里,但是开辟一个二维数组内存又过大,并且不好操作时,可以用map<int,vector<int>>mp来存储,这样就可以单独操......
  • ESP32S3 N16R8, USB_STREAM UVC调试记录
    win10,vscode,idf-5.2.1,usb_stream开发板:酷世Audio800*480开发板,NT53310+GT911参考phripherals/lcd/i80-controller与usb/host/usb_camera_lcd_display编写程序出现报错:I(11034)USB_STREAM:ENUMStageSTART,SucceedI(11044)USB_STREAM:ENUMStageGET_SHORT_DE......
  • docker安装mysql8.0.23
    拉取镜像dockerpullmysql:8.0.23创建挂载文件mkdir-p/home/docker/mysql/confmkdir-p/home/docker/mysql/datamkdir-p/home/docker/mysql/logcd/home/docker/mysql/conftouchmy.cnf编辑my.cnfvimy.cnf内容如下:default-character-set=utf8[mysql]defa......