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

Docker安装MinIO

使用 Docker 安装 MinIO 非常简单,以下是详细的步骤,涵盖 单机部署分布式部署(多节点) 两种方式:


1. 单机模式(适合本地开发/测试)

命令(直接运行)

docker run -d \-p 9000:9000 -p 9001:9001 \-e "MINIO_ROOT_USER=admin" \-e "MINIO_ROOT_PASSWORD=yourpassword" \-v /path/to/minio-data:/data \--name minio \minio/minio server /data --console-address ":9001"

参数说明

  • -p 9000:9000:MinIO API 端口(用于 S3 兼容接口,如上传/下载文件)。
  • -p 9001:9001:MinIO 控制台端口(Web 管理界面)。
  • -e MINIO_ROOT_USER:管理员账号(默认 admin)。
  • -e MINIO_ROOT_PASSWORD:管理员密码(需自定义,如 yourpassword)。
  • -v /path/to/minio-data:/data:将本地目录挂载到容器,持久化存储数据。

验证安装

  1. 访问 MinIO 控制台
    http://localhost:9001
    输入账号密码(admin / yourpassword)。
  2. 通过 API 访问
    • Endpoint: http://localhost:9000
    • 可用 AWS CLI 或 MinIO Client (mc) 测试连接。

2. 分布式模式(生产环境,4节点示例)

MinIO 分布式部署需至少 4个节点(纠删码冗余存储)。

命令(4节点部署)

docker run -d \--net=host \-e "MINIO_ROOT_USER=admin" \-e "MINIO_ROOT_PASSWORD=yourpassword" \-v /mnt/disk1:/data1 \-v /mnt/disk2:/data2 \-v /mnt/disk3:/data3 \-v /mnt/disk4:/data4 \minio/minio server \http://hostname{1...4}/data{1...4} \--console-address ":9001"

关键配置

  • --net=host:使用主机网络模式(避免端口映射问题)。
  • 每个节点挂载 独立磁盘(如 /mnt/disk1/data1)。
  • http://hostname{1...4}/data{1...4}:替换 hostname 为实际节点主机名或 IP。

3. 使用 Docker Compose(推荐单机)

创建 docker-compose.yml 文件:

version: '3'
services:minio:image: minio/minioports:- "9000:9000"- "9001:9001"environment:MINIO_ROOT_USER: adminMINIO_ROOT_PASSWORD: yourpasswordvolumes:- /path/to/minio-data:/datacommand: server /data --console-address ":9001"restart: unless-stopped

运行:

docker-compose up -d

4. 基本操作

(1) 登录控制台

  • 访问 http://localhost:9001,用 admin / yourpassword 登录。
  • 创建 Bucket(如 music-bucket),上传文件。

(2) 使用 MinIO Client (mc)

# 安装 mc
wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc
chmod +x /usr/local/bin/mc# 添加 MinIO 服务器
mc alias set myminio http://localhost:9000 admin yourpassword# 上传文件
mc cp song.mp3 myminio/music-bucket# 生成临时访问链接(私有文件)
mc share download myminio/music-bucket/song.mp3

(3) 通过代码访问(Node.js 示例)

const MinIO = require('minio');const minioClient = new MinIO.Client({endPoint: 'localhost',port: 9000,useSSL: false,accessKey: 'admin',secretKey: 'yourpassword'
});// 上传文件
minioClient.fPutObject('music-bucket', 'song.mp3', '/path/to/song.mp3', (err) => {if (err) console.error(err);else console.log('Upload success!');
});

5. 常见问题

Q1: 如何修改默认端口?

docker run 命令中替换 -p 参数,例如:

-p 8000:9000 -p 8001:9001  # 外部端口 8000/8001

Q2: 如何启用 HTTPS?

  • 挂载 SSL 证书到容器:
    -v /path/to/certs:/root/.minio/certs
    
  • 或使用反向代理(如 Nginx)。

Q3: 数据如何备份?

  • 直接备份挂载的本地目录(/path/to/minio-data)。
  • 使用 mc mirror 命令同步到其他存储。

总结

  • 单机部署:适合开发和测试,一键运行。
  • 分布式部署:生产环境必备,需至少 4 节点。
  • 持久化存储:务必挂载本地目录到容器(-v 参数)。
  • 安全建议:修改默认密码,限制 API 访问 IP。

如果需要更详细的配置(如 Nginx 反向代理、HTTPS 设置),可以告诉我! 🚀

http://www.lqws.cn/news/561907.html

相关文章:

  • 概述-4-通用语法及分类
  • 【go】初学者入门环境配置,GOPATH,GOROOT,GOCACHE,以及GoLand使用配置注意
  • 案例开发 - 日程管理系统 - 第一期
  • Redis 实现分布式锁
  • 【C++进阶】--- 继承
  • 鸿蒙 Grid 与 GridItem 深度解析:二维网格布局解决方案
  • 复杂驱动开发-TLE9471的休眠流程与定时唤醒
  • Python训练营-Day44-预训练模型
  • Java中的异常及异常处理
  • JDK17的GC调优
  • SpringCloud Stream 使用
  • Youtube双塔模型
  • 第27篇:SELinux安全增强机制深度解析与OpenEuler实践指南
  • eTools 开源发布
  • 如何在 Ubuntu 上通过终端或在 VirtualBox 中安装 GCC
  • 佳能Canon PIXMA G1020打印机信息
  • scGPT-spatial 复现
  • KS值:风控模型的“风险照妖镜”
  • Transformer结构--输入编码(BPE,PE)
  • Java面向对象(一)
  • JVM 之双亲委派机制与打破双亲委派
  • 【软考高项论文】论信息系统项目的进度管理
  • 【C++】简单学——类和对象(实现双向循环链表)
  • Python基础(吃洋葱小游戏)
  • Java Optional 详解:优雅处理空指针异常
  • 顺序表应用实践:从通讯录实现到性能优化深度解析
  • 有理函数积分——分式分解时设分解式的规则
  • Fine-Tuning Vision-Language-Action Models:Optimizing Speed and Success论文学习
  • SQL关键字三分钟入门:ROW_NUMBER() —— 窗口函数为每一行编号
  • FreeSWITCH配置文件解析(2) dialplan 拨号计划中xml 的action解析