使用容器技术快速入门MinIO
使用容器技术快速入门MinIO
使用容器技术(docker或者podman)快速部署一个单节点单磁盘 MinIO 服务器,用于对MinIO对象存储及其兼容 S3 的 API 层进行早期的开发和评估。
1. 准备工作
-
机器已经安装了 Podman 或者 Docker 。
-
对用于持久卷的文件夹或驱动器具有读取、写入和删除权限。
2. 容器部署操作步骤
选择一个容器类型以查看创建容器的指南。 提供了适用于 GNU/Linux 和 MacOS,或适用于 Windows 的指南。
2.1 podman部署
使用podman部署,下面步骤适用于rootfull和rootless的容器。
linux/macos:
mkdir -p ~/minio/datapodman run \-p 9000:9000 \-p 9001:9001 \-v ~/minio/data:/data \-e "MINIO_ROOT_USER=ROOTNAME" \-e "MINIO_ROOT_PASSWORD=CHANGEME123" \quay.io/minio/minio server /data --console-address ":9001"
windows:
podman run \-p 9000:9000 \-p 9001:9001 \-v D:\minio\data:/data \-e "MINIO_ROOT_USER=ROOTNAME" \-e "MINIO_ROOT_PASSWORD=CHANGEME123" \quay.io/minio/minio server /data --console-address ":9001"
说明:
-
podman run 启动容器. 该进程附加到终端会话,并在退出终端时结束。
-
-p 为容器绑定一个本地的端口.
-
-v 将文件路径设置为容器使用的持久卷位置。 当MinIO将数据写入 /data 时,该数据会镜像到本地路径 ~/minio/data , 使其能够在容器重新启动时保持持久化。 您可以设置任何具有读取、写入和删除权限的文件路径来使用。
-
-e 分别为用户名和密码设置环境变量 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD。如果变量未设置,minio 将默认使用
minioadmin作为访问密钥,以及minioadmin作为秘密密钥。
2.2 docker部署
使用docker部署minio,包括部署rootfull或者rootless类型的容器。
rootfull方式部署
- linux或macos
mkdir -p ~/minio/datadocker run \-p 9000:9000 \-p 9001:9001 \--name minio \-v ~/minio/data:/data \-e "MINIO_ROOT_USER=ROOTNAME" \-e "MINIO_ROOT_PASSWORD=CHANGEME123" \quay.io/minio/minio server /data --console-address ":9001"
- windows
docker run \-p 9000:9000 \-p 9001:9001 \--name minio1 \-v D:\minio\data:/data \-e "MINIO_ROOT_USER=ROOTUSER" \-e "MINIO_ROOT_PASSWORD=CHANGEME123" \quay.io/minio/minio server /data --console-address ":9001"
上面的示例以以下方式工作:
-
docker run 启动运行容器。
-
-p 为容器绑定一个本地的端口.
-
-name 为容器创建一个本地的名字。
-
-v 将文件路径设置为容器使用的持久卷位置。 当MinIO将数据写入 /data 时,该数据会镜像到本地路径 ~/minio/data , 使其能够在容器重新启动时保持持久化。 您可以设置任何具有读取、写入和删除权限的文件路径来使用。
-
-e 分别为用户名和密码设置环境变量 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD。
rootless方式部署
- linux/macos
mkdir -p ${HOME}/minio/datadocker run \-p 9000:9000 \-p 9001:9001 \--user $(id -u):$(id -g) \--name minio1 \-e "MINIO_ROOT_USER=ROOTUSER" \-e "MINIO_ROOT_PASSWORD=CHANGEME123" \-v ${HOME}/minio/data:/data \quay.io/minio/minio server /data --console-address ":9001"
- windows
docker run \-p 9000:9000 \-p 9001:9001 \--name minio1 \--security-opt "credentialspec=file://path/to/file.json"-e "MINIO_ROOT_USER=ROOTUSER" \-e "MINIO_ROOT_PASSWORD=CHANGEME123" \-v D:\data:/data \quay.io/minio/minio server /data --console-address ":9001"
备注
windows下运行前提:
Windows Group Managed Service Account(gMSA)已经定义。
上面的示例以以下方式工作:
-
docker run启动运行容器。 -
-p为容器绑定一个本地的端口. -
-name为容器创建一个本地的名字。 -
--security-opt:windows下运行需要配置。授予通过credentialspec文件访问容器的权限,用于 组管理服务帐户 (gMSA) -
-v设置文件路径作为容器要使用的持久卷位置。 当MinIO将数据写入/data时,实际上是将数据写入本地路径D:\data中,这样可以在容器重新启动之间保持持久。 您可以替换D:\data为用户具有读取、写入和删除权限的另一个本地文件位置。 -
-e分别为用户名和密码设置环境变量MINIO_ROOT_USER和MINIO_ROOT_PASSWORD。
3. 通过浏览器访问MinIO服务器
启动MinIO服务器后,命令行会生成两个链接地址,例如:Console: http://192.0.2.10:9001 http://127.0.0.1:9001 输出的两个地址,是系统自动根据本地IP生成的地址,这两个地都在没有防火墙和安全策略的情况下都有可能能访问到MinIO控制台。通过docker容器所在的节点+端口即可访问控制台。
监听的 9000 端口主要用于通过API连接时的访问, 当通过浏览器访问 9000 端口时浏览器会自动跳转至控制台。
MinIO Console控制台的登录凭据(用户名和密码)默认认置的环境变量通过 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 修改。
4. FAQ
- Centos7 x86机器下运行minio容器(镜像版本:RELEASE.2024-09-13T20-26-02Z)提示“Fatal glibc error: CPU does not support x86-64-v2”。
原因:Docker 镜像中的 glibc 版本要求 CPU 支持 x86-64-v2 指令集,而你的硬件不支持。
参考:https://github.com/minio/minio/issues/18365
解决:降低minio版本,降低为RELEASE.2023-10-25T06-33-25Z或者更低。
5. 参考资料
- https://www.minio.org.cn/docs/minio/container/index.html
- https://www.minio.org.cn/docs/minio/container/administration/identity-access-management/minio-user-management.html#minio-users-root
- https://learn.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/manage-serviceaccounts
相关文章:
使用容器技术快速入门MinIO
使用容器技术快速入门MinIO 使用容器技术(docker或者podman)快速部署一个单节点单磁盘 MinIO 服务器,用于对MinIO对象存储及其兼容 S3 的 API 层进行早期的开发和评估。 1. 准备工作 机器已经安装了 Podman 或者 Docker 。 对用于持久卷的…...
ros2教程(一):使用python和C++发布摄像头原始图像和压缩图像
1. 使用python发布图像 在ROS 2中,可以通过使用rclpy库来发布压缩图像和原始图像。发布原始图像可以使用sensor_msgs.msg.Image消息类型,压缩图像则使用sensor_msgs.msg.CompressedImage消息类型。 #!/usr/bin/env python3# function: usbcam publish r…...
【自动化测试】UI自动化的分类、如何选择合适的自动化测试工具以及其中appium的设计理念、引擎和引擎如何工作
引言 UI自动化测试主要针对软件的用户界面进行测试,以确保用户界面元素的交互和功能符合预期 文章目录 引言一、UI自动化的分类1.1 基于代码的自动化测试1.2 基于录制/回放的自动化测试1.3 基于框架的自动化测试1.4 按测试对象分类1.5 按测试层次分类1.6 按测试执行…...
深入理解Python中的“_,”:一个实用的语法特性
在Python编程中,你可能经常会看到一个特殊的标识符“_”。这个符号在Python中有多种用途,其具体含义依上下文而定。本文将探讨其中一种常见用法——作为一个临时性的占位符——并解释它在实际编程中的实用性和应用场景。 1. “_”作为占位符 在Python中…...
Mac清理其他文件:释放存储空间的高效指南
每个Mac用户都可能遇到存储空间不足的问题,尤其是当“其他”文件积累到一定体积时。在Mac上,“其他”文件通常包括各种系统文件、缓存、文档以及不被归类为应用程序、照片、电影或音乐的其他类型的文件。这些文件往往不易被注意,但逐渐占用了…...
html+css+js网页设计 旅游 龙门石窟4个页面
htmlcssjs网页设计 旅游 龙门石窟4个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…...
CISSP一站通关
依托轻速云维护了一个专注于CISSP备考通关的在线学习平台,提供知识串讲视频,配合大量针对性的习题和重难点习题解析,帮助备考学习者高效学习和巩固知识点。已经帮助100考友顺利通过考试。 知识串讲视频是我主讲的5天直播课程的录屏࿰…...
Golang | Leetcode Golang题解之第406题根据身高重建队列
题目: 题解: func reconstructQueue(people [][]int) (ans [][]int) {sort.Slice(people, func(i, j int) bool {a, b : people[i], people[j]return a[0] > b[0] || a[0] b[0] && a[1] < b[1]})for _, person : range people {idx : pe…...
【我的Android进阶之旅】解决CardView四个圆角有白边的问题
文章目录 一、问题描述二、分析CardView出现白边的原因三、如何解决这个问题?3.1 如何修复?3.2 为什么这样可以修复?3.3 示例代码3.4 总结一、问题描述 在实现一个RecycleView的Item时候,样式需要用到卡片式效果,于是想到用CardView来实现,但是最终发现运行出来的效果,…...
学习笔记JVM篇(四)
垃圾回收器 说完垃圾回收算法接下来就需要对应的垃圾回收器去回垃圾回收器。接下来介绍几种垃圾回收器 1、Serial 串行回收器,是单线程版本,暂停所有的应用。在单CPU的情况下效率是很高的,因为不涉及线程的上下文切换。适用于小型程序和客…...
828 华为云征文|华为 Flexus 云服务器搭建萤火商城 2.0
《828 华为云征文|华为 Flexus 云服务器搭建萤火商城 2.0》 在 2024 年 9 月 14 日这个特别的日子,我着手利用华为 Flexus 云服务器搭建轻量级、高性能、前后端分离的电商系统萤火商城 2.0,开启了一段充满挑战与惊喜的旅程。 华为 Flexus 云服…...
centos7安装MySQL5.7.44
下载压缩文件 命令: #放到在/usr/local目录下 cd /usr/local #上传命令选择安装包 rz #解压缩包 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz #给包重命名为mysql mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql #查看mysql目录下有什么东西 [rootlocal…...
HTTP 请求处理的完整流程到Servlet流程图
HTTP 请求处理的完整流程。从 TCP 三次握手开始,一直到 Servlet 处理请求并返回响应。 首先,让我解释一下 response.setContentType("text/html;charsetUTF-8"); 这行代码: 这行代码设置了 HTTP 响应的 Content-Type 头。它告诉浏…...
spingboot中创建简单的WebSocket服务和使用OKHttp创建socket客户端接收数据
背景 springboot 中使用okhttp3创建webSocket服务端 server1 和客户端 client1,客户端clinet1调用server1用于发送图片,创建客户端client2接收此图片. 在Spring Boot中使用OkHttp3创建WebSocket服务端和客户端,涉及到两个不同的操作ÿ…...
Redis入门2
在java中操作Redis Redis的Java客户端 Redis 的 Java 客户端很多,常用的几种: Jedis Lettuce Spring Data Redis Spring Data Redis 是 Spring 的一部分,对 Redis 底层开发包进行了高度封装。 在 Spring 项目中,可以使用Spring Data R…...
嵌入式Linux:信号是什么?
目录 1、信号的来源 2、信号的处理方式 3、信号的异步性 4、信号编号 信号是Linux系统中用于通知进程事件发生的一种机制,可以将其视为一种软件中断。信号类似于硬件中断,能够打断进程当前的执行流程,从而实现对中断机制的一种软件层面的…...
教你搭建一个wifi贴系统
大家好,我是鲸天科技千千,大家都知道我是做小程序开发的,平时会给大家分享一些互联网相关的创业项目,感兴趣的可以跟我关注一下。 搭建一个首先就是要搭建一个自己的wifi贴小程序,我们自己的工作就是把这个小程序推广…...
C#中的LINQ语句
LINQ(Language Integrated Query)是 .NET Framework 中的一个功能强大的查询语言,它允许开发者使用类似 SQL 的语法来查询和操作数据。在 C# 中,LINQ 可以用于查询数组、列表、集合、XML 文档、关系数据库等。以下是一些常见的 LI…...
【C++】——string(模拟实现)
文章目录 string类构造string类拷贝构造string类析构string类运算符重载string类部分常用接口的模拟实现 这篇博客中构造、拷贝构造、析构、还有一些短小频繁调用的函数就不用做函数和定义分离,因为在类中,这种函数会默认是内联函数 string类构造 构造函…...
c++20 std::format 格式化说明
在标头<format>定义 ()功能很强大,它把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’。 1、基本用法 (1)不带编号,即“{}”(2)带…...
脚本开发必看:随机数使用中的3个常见误区及正确写法(按键精灵版)
脚本开发必看:随机数使用中的3个常见误区及正确写法(按键精灵版) 在自动化脚本开发中,随机数功能就像一把双刃剑——用得好能让脚本行为更接近人类操作,用得不好则可能导致不可预测的bug。特别是在按键精灵这类工具中&…...
OpenClaw技能市场巡礼:Phi-3-mini-128k-instruct十大实用插件推荐
OpenClaw技能市场巡礼:Phi-3-mini-128k-instruct十大实用插件推荐 1. 为什么需要技能市场? 当我第一次接触OpenClaw时,最让我惊喜的不是它能操控我的电脑完成各种任务,而是它拥有一个充满活力的技能市场——ClawHub。这个市场就…...
2026知识付费SaaS平台实测对比:创客匠人综合首选,拆解行业标杆的硬核实力
随着知识付费市场规模持续扩张,艾媒咨询数据显示,2026年中国知识付费市场规模将突破3000亿元,用户规模超6.4亿人。面对激烈的竞争,如何选择一款功能全面、稳定可靠的SaaS平台成为内容创作者和机构的核心痛点。功能卡顿、获客成本高…...
单片机核心功能解析与实战技巧
1. 单片机学习的核心功能解析作为一名在嵌入式领域摸爬滚打多年的工程师,我深知单片机学习的关键不在于死记硬背,而在于掌握几个核心功能的底层逻辑和应用场景。很多初学者容易陷入"学了很多却不会用"的困境,根本原因就是没有抓住这…...
On the Spectral Geometry of Cognitive Manifolds and the Emergence of Physical Laws
On the Spectral Geometry of Cognitive Manifolds and the Emergence of Physical Laws (A Noncommutative Framework for Free Will, Physical Constants, and Arithmetical Obstructions)作者:方见华 单位:世毫九实验室摘要&am…...
营销短信接口接入指引:新手开发者如何快速掌握营销短信API的调用技巧
在电商促销、会员运营、活动推送等业务场景中,营销短信接口接入是实现批量用户触达的关键技术环节。很多新手开发者在对接时,常因签名规则不清、参数格式错误、请求结构不规范导致调试效率低下。本文将从原理拆解、实战编码、错误排查三个维度࿰…...
OpenClaw飞书机器人集成:Kimi-VL-A3B-Thinking多模态问答助手
OpenClaw飞书机器人集成:Kimi-VL-A3B-Thinking多模态问答助手 1. 为什么选择OpenClaw飞书Kimi-VL组合? 去年我在内容团队工作时,经常遇到这样的场景:设计师发来一张海报初稿,我们需要快速判断文案与图像的匹配度&…...
32-字体反爬
本文需要借助工具:fontcreator,或者在线网站:字体设计在线网站 字体反爬介绍 字体反爬是网站常用的前端反爬手段,核心逻辑是用自定义字体文件替代明文文本,爬虫自动化也无法拿到正确的明文数据 字体反爬原理 本文主…...
GObject框架:C语言的面向对象编程实践
1. GObject框架概述GObject作为GLib库的核心组件,为C语言开发者提供了一套完整的面向对象编程范式。这个框架完美解决了C语言缺乏原生面向对象支持的痛点,让开发者能够在保持C语言高效性的同时,享受到面向对象编程的诸多优势。我在实际项目中…...
OpenSSH安全升级指南:如何快速禁用CBC模式并切换到CTR加密(附最新配置命令)
OpenSSH安全加固实战:从漏洞检测到加密算法升级全流程 最近在给某金融客户做安全审计时,发现他们的生产服务器还在使用OpenSSH的CBC模式加密。这让我想起十年前那个著名的CVE-2008-5161漏洞——攻击者可以利用CBC模式的弱点,从SSH会话中恢复出…...
