文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

【大数据】通过 docker-compose 快速部署 MinIO 保姆级教程

2023-09-01 14:26

关注

文章目录

一、概述

MinIO 是一个开源的对象存储服务器,它兼容Amazon S3(Simple Storage Service)API。它被设计用于构建分布式存储架构,提供高可用性、高性能和可扩展的对象存储解决方案。

下面是MinIO的一些主要特点和功能:

总的来说,MinIO是一个开源的高性能对象存储服务器,适用于构建分布式存储系统。它具有高可用性、可扩展性和数据保护机制,兼容Amazon S3 API,使其与现有的S3生态系统和工具集成无缝。MinIO在大数据、云计算和容器化环境中广泛应用,为应用程序提供了可靠、高效的对象存储服务。

在这里插入图片描述
这里主要侧重使用docker快速部署环境,想了解更多,可以参考我以下几篇文章:

官方文档:https://docs.min.io/
中文文档:http://docs.minio.org.cn/docs/

二、MinIO 与 Ceph 对比

MinIO和Ceph都是流行的开源存储解决方案,它们在对象存储领域有不同的特点和适用场景。下面是MinIO和Ceph的对比:

1)架构设计对比

2)数据一致性对比

3)部署和管理对比

4)生态系统和兼容性对比

综上所述,MinIO适用于简单、轻量级的对象存储需求,注重高性能和易用性。它适合中小规模部署,并且与Amazon S3兼容,易于与现有的S3生态系统集成。

无论选择MinIO还是Ceph,都需要仔细评估其与特定应用和环境的兼容性、性能需求、管理复杂性和可扩展性,以确保选择的解决方案能够满足实际需求并提供可靠的存储服务。

三、前期准备

1)部署 docker

# 安装yum-config-manager配置工具yum -y install yum-utils# 建议使用阿里云yum源:(推荐)#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装docker-ce版本yum install -y docker-ce# 启动并开机启动systemctl enable --now dockerdocker --version

2)部署 docker-compose

curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose --version

四、创建网络

# 创建,注意不能使用hadoop_network,要不然启动hs2服务的时候会有问题!!!docker network create hadoop-network# 查看docker network ls

五、MinIO 编排部署

1)下载 MinIO 安装包

wget https://dl.min.io/server/minio/release/linux-amd64/minio

2)配置

这里部署的是伪集群,但是需要的磁盘还是那么多,下面就是挂载磁盘的步骤:

### 1、格式化mkfs.ext4 /dev/sdbmkfs.ext4 /dev/sdcmkfs.ext4 /dev/sddmkfs.ext4 /dev/sdemkfs.ext4 /dev/sdfmkfs.ext4 /dev/sdgmkfs.ext4 /dev/sdhmkfs.ext4 /dev/sdimkfs.ext4 /dev/sdjmkfs.ext4 /dev/sdkmkfs.ext4 /dev/sdlmkfs.ext4 /dev/sdm### 2、创建挂载目录mkdir /opt/apache/docker-compose-minio/data/minio-node{1..3}/data{1..4}### 3、挂载# minio-node1mount /dev/sdb /opt/apache/docker-compose-minio/data/minio-node1/data1mount /dev/sdc /opt/apache/docker-compose-minio/data/minio-node1/data2mount /dev/sdd /opt/apache/docker-compose-minio/data/minio-node1/data3mount /dev/sde /opt/apache/docker-compose-minio/data/minio-node1/data4# minio-node2mount /dev/sdf /opt/apache/docker-compose-minio/data/minio-node2/data1mount /dev/sdg /opt/apache/docker-compose-minio/data/minio-node2/data2mount /dev/sdh /opt/apache/docker-compose-minio/data/minio-node2/data3mount /dev/sdi /opt/apache/docker-compose-minio/data/minio-node2/data4# minio-node3mount /dev/sdj /opt/apache/docker-compose-minio/data/minio-node3/data1mount /dev/sdk /opt/apache/docker-compose-minio/data/minio-node3/data2mount /dev/sdl /opt/apache/docker-compose-minio/data/minio-node3/data3mount /dev/sdm /opt/apache/docker-compose-minio/data/minio-node3/data4### 4、持久化配置# minio-node1echo "/dev/sdb /opt/apache/docker-compose-minio/data/minio-node1/data1  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdc /opt/apache/docker-compose-minio/data/minio-node1/data2  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdd /opt/apache/docker-compose-minio/data/minio-node1/data3  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sde /opt/apache/docker-compose-minio/data/minio-node1/data4  ext4  defaults        0 0" >> /etc/fstab# minio-node2echo "/dev/sdf /opt/apache/docker-compose-minio/data/minio-node2/data1  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdg /opt/apache/docker-compose-minio/data/minio-node2/data2  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdh /opt/apache/docker-compose-minio/data/minio-node2/data3  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdi /opt/apache/docker-compose-minio/data/minio-node1/data4  ext4  defaults        0 0" >> /etc/fstab# minio-node3echo "/dev/sdj /opt/apache/docker-compose-minio/data/minio-node3/data1  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdk /opt/apache/docker-compose-minio/data/minio-node3/data2  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdl /opt/apache/docker-compose-minio/data/minio-node3/data3  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdm /opt/apache/docker-compose-minio/data/minio-node3/data4  ext4  defaults        0 0" >> /etc/fstab

3)启动脚本 bootstrap.sh

#!/bin/bashsource /etc/profile# 在三台机器上都执行该文件,即以分布式的方式启动了MINIO# --address "0.0.0.0:9000" 挂载9001端口为api端口(如Java客户端)访问的端口# --console-address ":9000" 挂载9000端口为web端口;/opt/apache/minio/minio server --address 0.0.0.0:9000 --console-address 0.0.0.0:9001 --config-dir /etc/minio \http://minio-node1/opt/apache/minio/data/export1 \http://minio-node1/opt/apache/minio/data/export2 \http://minio-node1/opt/apache/minio/data/export3 \http://minio-node1/opt/apache/minio/data/export4 \http://minio-node2/opt/apache/minio/data/export1 \http://minio-node2/opt/apache/minio/data/export2 \http://minio-node2/opt/apache/minio/data/export3 \http://minio-node2/opt/apache/minio/data/export4 \http://minio-node3/opt/apache/minio/data/export1 \http://minio-node3/opt/apache/minio/data/export2 \http://minio-node3/opt/apache/minio/data/export3 \http://minio-node3/opt/apache/minio/data/export4 >/opt/apache/minio/logs/minio_server.log &tail -f /opt/apache/minio/logs/minio_server.log

Minio默认9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口

【温馨提示】磁盘大小必须>1G,这里我添加的是4*2G的盘

4)构建镜像 Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/centos-jdk:7.7.1908# 创建日志存储目录RUN mkdir -p /opt/apache/minio/logs# 分别在三个节点上创建存储目录RUN mkdir -p /opt/apache/minio/data/export{1..3}# 创建配置目录RUN mkdir -p /etc/minio# 账号密码ENV MINIO_ROOT_USER=adminENV MINIO_ROOT_PASSWORD=admin123456# copy minioCOPY minio /opt/apache/minio/# copy minio client mcCOPY mc /opt/apache/minio/RUN ln -s /opt/apache/minio/mc /usr/local/sbin/mc# copy bootstrap.shCOPY bootstrap.sh /opt/apache/RUN chmod +x /opt/apache/bootstrap.shWORKDIR /opt/apache

开始构建镜像

docker build -t registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619 . --no-cache --progress=plain# 为了方便小伙伴下载即可使用,我这里将镜像文件推送到阿里云的镜像仓库docker push registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619### 参数解释# -t:指定镜像名称# . :当前目录Dockerfile# -f:指定Dockerfile路径#  --no-cache:不缓存

5)编排 docker-compose.yaml

version: '3'services:  minio-node1:    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619    container_name: minio-node1    hostname: minio-node1    restart: always    privileged: true    env_file:      - .env    expose:      - "${MinIO_PORT}"    ports:      - "${MinIO_HTTP_PORT}"    volumes:      - /opt/apache/docker-compose-minio/data/minio-node1/data1:/opt/apache/minio/data/export1      - /opt/apache/docker-compose-minio/data/minio-node1/data2:/opt/apache/minio/data/export2      - /opt/apache/docker-compose-minio/data/minio-node1/data3:/opt/apache/minio/data/export3      - /opt/apache/docker-compose-minio/data/minio-node1/data4:/opt/apache/minio/data/export4    command: ["sh","-c","/opt/apache/bootstrap.sh"]    networks:      - hadoop-network    healthcheck:      test: ["CMD-SHELL", "netstat -tnlp|grep :${MinIO_PORT} || exit 1"]      interval: 10s      timeout: 10s      retries: 5  minio-node2:    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619    container_name: minio-node2    hostname: minio-node2    restart: always    privileged: true    env_file:      - .env    expose:      - "${MinIO_PORT}"    ports:      - "${MinIO_HTTP_PORT}"    volumes:      - /opt/apache/docker-compose-minio/data/minio-node2/data1:/opt/apache/minio/data/export1      - /opt/apache/docker-compose-minio/data/minio-node2/data2:/opt/apache/minio/data/export2      - /opt/apache/docker-compose-minio/data/minio-node2/data3:/opt/apache/minio/data/export3      - /opt/apache/docker-compose-minio/data/minio-node2/data4:/opt/apache/minio/data/export4    command: ["sh","-c","/opt/apache/bootstrap.sh"]    networks:      - hadoop-network    healthcheck:      test: ["CMD-SHELL", "netstat -tnlp|grep :${MinIO_PORT} || exit 1"]      interval: 10s      timeout: 10s      retries: 5  minio-node3:    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619    container_name: minio-node3    hostname: minio-node3    restart: always    privileged: true    env_file:      - .env    expose:      - "${MinIO_PORT}"    ports:      - "${MinIO_HTTP_PORT}"    volumes:      - /opt/apache/docker-compose-minio/data/minio-node3/data1:/opt/apache/minio/data/export1      - /opt/apache/docker-compose-minio/data/minio-node3/data2:/opt/apache/minio/data/export2      - /opt/apache/docker-compose-minio/data/minio-node3/data3:/opt/apache/minio/data/export3      - /opt/apache/docker-compose-minio/data/minio-node3/data4:/opt/apache/minio/data/export4    command: ["sh","-c","/opt/apache/bootstrap.sh"]    networks:      - hadoop-network    healthcheck:      test: ["CMD-SHELL", "netstat -tnlp|grep :${MinIO_PORT} || exit 1"]      interval: 10s      timeout: 10s      retries: 5# 连接外部网络networks:  hadoop-network:    external: true

.env 文件内容

MinIO_PORT=9000MinIO_HTTP_PORT=9001

6)开始部署

# --project-name指定项目名称,默认是当前目录名称docker-compose -f docker-compose.yaml up -d# 查看docker-compose -f docker-compose.yaml ps# 卸载docker-compose -f docker-compose.yaml down

7)简单测试验证

# 登录容器内测试docker exec -it minio-node1 bash# 登录,密文输入(推荐)[root@minio-node1 apache]# mc config host add minio http://localhost:9000Enter Access Key: adminEnter Secret Key: 输入密码Added `minio` successfully.# 查看集群信息mc admin info minio

在这里插入图片描述

8)web 访问

http://ip:port

docker-compose -f docker-compose.yaml ps

账号/密码:admin/admin123456
在这里插入图片描述
在这里插入图片描述


到此通过 docker-compose 快速部署 MinIO 保姆级教程就完结了,有任何疑问请关注我公众号:大数据与云原生技术分享,加群交流或私信沟通,,如本篇文章对您有所帮助,麻烦帮忙一键三连(点赞、转发、收藏)~

来源地址:https://blog.csdn.net/qq_35745940/article/details/131354573

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯