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

Docker 部署 MinIO 对象存储服务

Docker 部署 MinIO 对象存储服务

  • 前言
  • 一、准备工作
    • 1. 安装 Docker
    • 2. 确认服务器架构
  • 二、设置 MinIO 容器的目录结构
  • 三、启动一个临时的 MinIO 容器来获取配置文件
  • 四、复制 MinIO 配置文件到本地目录
  • 五、删除临时 MinIO 容器
  • 六、创建并运行 MinIO 容器,挂载本地目录
  • 七、修改 MinIO 配置文件
  • 八、端口配置:Host 网络模式 vs Port 映射模式
  • 九、查看日志和检查容器状态
  • 十、访问 MinIO 服务
  • 十一、MinIO 联邦集群
  • 总结


前言

MinIO 是一个高性能、开源的对象存储服务,基于 Apache License v2.0 协议,兼容 Amazon S3 API。作为轻量级存储解决方案,MinIO 提供了卓越的性能,适合存储大容量的非结构化数据,如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。其文件大小可从几千字节到最大 5T 不等,且完全免费。

核心优势

  • 高性能:支持大规模数据存储与访问,处理速度快。
  • 开源与兼容:完全开源,兼容 S3 接口,便于集成。
  • 适用场景:适合静态文件存储、数据备份、归档管理等。
  • 部署简单:通过 Docker 快速部署,减少安装和配置复杂度。
  • 免费使用:无需付费,适合开发者和小型企业使用。

通过 Docker 部署 MinIO,你可以迅速启动并配置服务,简化了安装过程,同时保持极高的性能和可扩展性。

本篇文章将指导你通过 Docker 快速搭建 MinIO 环境,并讲解如何修改配置文件和定制化你的存储设置。

在这里插入图片描述


一、准备工作

1. 安装 Docker

首先,确保你的系统上已经安装了 Docker。

Linux上进行Docker安装有两种方式:

  1. Docker自动化安装
  2. Docker手动安装

可以根据该文章的步骤进行安装:https://blog.csdn.net/weixin_44876263/article/details/136714078?spm=1001.2014.3001.5502

2. 确认服务器架构

minio运行错误

错误:minio安装 运行后显示:Fatal glibc error: CPU does not support x86-64-v2解决方案:使用 /minio/minio:${release}-cpuv1    例如:minio/minio:RELEASE.2024-02-17T01-15-57Z-cpuv1

在选择 MinIO 镜像版本时,需要确认服务器的硬件架构。 则你可以通过以下命令查看服务器的 CPU 架构

uname -m
  • 如果返回 x86_64,则是标准的 x86-64 架构。
  • 如果返回 x86-64-v2,则是支持特定优化的架构版本。

根据你的架构,选择对应的 MinIO 镜像版本:

  • x86_64 架构: minio/minio:RELEASE.2023-04-28T18-11-17Z-cpuv1
  • x86-64-v2 架构: minio/minio:RELEASE.2024-02-17T01-15-57Z

二、设置 MinIO 容器的目录结构

为了便于管理,我们首先创建一个目录结构,用于存放 MinIO 数据和配置文件。

# 安装路径
DIR="/opt/docker/minio"
DOCKER_NAME="docker-minio"# 创建目录结构
mkdir -p "$DIR/data"
mkdir -p "$DIR/docker/config"
  • data:存放 MinIO 的数据文件。
  • config:存放 MinIO 配置文件。

三、启动一个临时的 MinIO 容器来获取配置文件

我们需要一个基础的 MinIO 配置文件,Docker 官方镜像已内置了默认配置。为了方便地获取并修改这些配置文件,我们首先启动一个临时的 MinIO 容器。

# 启动一个临时的 MinIO 容器来复制配置文件
docker run --name minio_test -p 9000:9000 -d minio/minio server /data

这个命令会启动一个 minio/minio 容器,并将其 9000 端口映射到宿主机的 9000 端口。我们可以通过访问 http://localhost:9000 来查看 MinIO 服务。

四、复制 MinIO 配置文件到本地目录

接下来,我们将容器内的 MinIO 配置文件复制到本地,以便进行自定义修改。使用以下命令将配置文件复制到宿主机的 $DIR/docker/config 目录中:

# 复制 MinIO 配置文件到本地目录
docker cp minio_test:/root/.minio "$DIR/docker/config"

这样,我们就获取到了 MinIO 的配置文件,并可以根据需要进行修改。

五、删除临时 MinIO 容器

复制完配置文件后,我们不再需要这个临时的 MinIO 容器,因此可以将其删除:

# 删除临时 MinIO 容器
docker rm -f minio_test

六、创建并运行 MinIO 容器,挂载本地目录

现在,我们可以使用自定义的配置文件来启动一个持久化的 MinIO 容器。通过将本地目录挂载到容器中,我们可以确保配置文件、日志和数据文件持久化存储在宿主机上。

以下是启动 MinIO 容器的命令:

docker run -d \--restart=always \--name "$DOCKER_NAME" \--network host \-e "MINIO_ROOT_USER=minio" \-e "MINIO_ROOT_PASSWORD=minio123456" \-v "$DIR/data:/data/minio" \-v "$DIR/docker/config:/root/.minio" \minio/minio server /data/minio

解释各个参数:

  • -d:后台运行容器。
  • --restart=always:容器在崩溃或系统重启后自动重启。
  • --name "$DOCKER_NAME":容器的名称为 docker-minio
  • --network host:容器将使用宿主机的网络栈。
  • -e "MINIO_ROOT_USER=minio":设置 MinIO 的根用户。
  • -e "MINIO_ROOT_PASSWORD=minio123456":设置 MinIO 的根密码。
  • -v "$DIR/data:/data/minio":挂载数据目录到容器中。
  • -v "$DIR/docker/config:/root/.minio":挂载配置目录到容器中。

七、修改 MinIO 配置文件

如果你需要修改 MinIO 的配置,可以直接修改 $DIR/docker/config 目录下的配置文件。MinIO 支持通过环境变量配置许多功能,例如设置根用户、密码、访问密钥等。

在默认情况下,MinIO 启动时会根据容器内的配置文件进行初始化,因此你只需要确保挂载正确的配置文件即可。

八、端口配置:Host 网络模式 vs Port 映射模式

在 Docker 中,容器的端口配置是非常关键的。MinIO 容器支持两种主要的端口配置方式:Host 网络模式Port 映射模式

  1. Host 网络模式

    在 Docker 中使用 --network host 时,容器将共享宿主机的网络栈,这意味着容器直接使用宿主机的 IP 地址和端口来暴露服务。通过这种方式,容器会使用宿主机的端口 9000 来提供服务。

    配置命令:

    docker run -d \--restart=always \--name "$DOCKER_NAME" \--network host \-e "MINIO_ROOT_USER=minio" \-e "MINIO_ROOT_PASSWORD=minio123456" \-v "$DIR/data:/data/minio" \-v "$DIR/docker/config:/root/.minio" \minio/minio server /data/minio
    
    • 优点
      • 容器共享宿主机的网络,性能较高。
      • 无需显式端口映射,容器与宿主机共享相同的网络。
    • 缺点
      • 容器与宿主机的网络完全共享,可能会有端口冲突,尤其是多个容器或服务同时运行时。
      • 容器的端口与宿主机端口相同,可能存在安全隐患。
  2. Port 映射模式

    如果你希望使用宿主机的特定端口来访问容器内的服务,可以使用 -p 参数进行端口映射。

    配置命令:

    docker run -d \--restart=always \--name "$DOCKER_NAME" \-p 9000:9000 \-e "MINIO_ROOT_USER=minio" \-e "MINIO_ROOT_PASSWORD=minio123456" \-v "$DIR/data:/data/minio" \-v "$DIR/docker/config:/root/.minio" \minio/minio server /data/minio
    
    • 优点
      • 容器端口与宿主机端口不同,可以避免端口冲突。
      • 容器与宿主机之间有更好的网络隔离性。
      • 支持多个容器映射到宿主机不同的端口,适合多容器环境。
    • 缺点
      • 可能会导致稍微的性能损失,因为需要进行额外的端口映射。
      • 需要手动管理和指定端口映射。

九、查看日志和检查容器状态

容器启动后,你可以通过以下命令查看容器的状态,确保它在运行中:

docker ps

如果容器未正常运行,可以查看日志进行排查:

docker logs docker-minio

十、访问 MinIO 服务

完成上述步骤后,你可以通过浏览器访问宿主机的 IP 地址和配置的端口,查看 Nginx 是否正常运行。

  • 如果使用了 --network host,则可以通过 http://localhost:9000 访问 MinIO 控制台。
  • 如果使用了端口映射,例如 -p 9000:9000,则可以通过 http://localhost:9000 访问 MinIO 服务。

在这里插入图片描述

十一、MinIO 联邦集群

MinIO 联邦集群介绍
https://blog.csdn.net/weixin_44876263/article/details/136236974?spm=1001.2014.3001.5501

基于docker的联邦集群搭建 (etcd+minio)
https://blog.csdn.net/weixin_44876263/article/details/136238872?spm=1001.2014.3001.5501


总结

通过 Docker 部署 MinIO 容器非常简便,并且可以灵活配置各个参数。通过挂载本地目录,MinIO 的数据文件和配置文件可以持久化存储在宿主机上,便于管理和备份。使用 Docker 来运行 MinIO 容器不仅简化了部署流程,还提供了极大的灵活性和可扩展性。


http://www.mrgr.cn/news/92516.html

相关文章:

  • 【Qt】为程序增加闪退crash报告日志
  • 27.[前端开发-JavaScript基础]Day04-函数基本使用-递归-变量作用域-函数式编程
  • 24.[前端开发-JavaScript基础]Day01-插件配置-变量-数据
  • SpringBoot项目注入 traceId 来追踪整个请求的日志链路
  • RAG 阿里云
  • 数据开发的简历及面试
  • C# Unity 唐老狮 No.2 模拟面试题
  • Oracle 12c Docker安装问题排查 sga_target 1536M is too small
  • Vue2+Element实现Excel文件上传下载预览【超详细图解】
  • deepseek-r1-centos-本地服务器配置方法
  • 【三维分割】LangSplat: 3D Language Gaussian Splatting(CVPR 2024 highlight)
  • 【HarmonyOS Next】 鸿蒙应用useNormalizedOHMUrl详解
  • Springboot基础篇(3):Bean管理
  • Java中的日志框架:Log4j2 vs SLF4J vs Logback
  • vue+element-dialog:修改关闭icon / 遮罩层不能挡住弹窗 / 遮罩层不能遮挡元素
  • ubuntu服务器安装VASP.6.4.3
  • 【新立电子】探索AI眼镜背后的黑科技,FPC如何赋能实时翻译与语音识别,点击了解未来沟通的新方式!
  • MS SQL 2008 技术内幕:T-SQL 语言基础
  • 【Linux】vim 设置
  • Mysql基础-多表查询(详细版)