当前位置: 首页 > 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 设置),可以告诉我! 🚀

相关文章:

  • 碰一碰发视频/碰一碰发抖音技术--源码开发部署实现方案
  • NVIDIA 开源高性能语音识别模型:Parakeet TDT 0.6B V2 登顶 OpenASR 榜单
  • DeepSeek 桌面端 快捷键唤起小窗口 极致轻量化
  • JavaScript正则表达式之正向先行断言(Positive Lookahead)深度解析
  • 黑马python(十七)
  • 电子电气架构 --- 车载芯片SOC简介
  • MyComic动漫+漫画+小说三合一 v1.9.2 纯净版
  • 北大肖臻《区块链技术与应用》学习笔记
  • MyBatis深度面试指南之三
  • 数据结构1 ——数据结构的基本概念+一点点算法
  • Java Optional 详解:优雅处理空指针异常
  • 【Docker基础】Docker容器管理:docker stats及其参数详解
  • 【笔记】 Docker目录迁移脚本
  • centos指令
  • 现代串口通讯UI框架性能对比
  • 机器人磁性夹具如何选?IXTUR气控永磁铁 MAP/MRP/LI-120系列负载能力与适用场景解析
  • 开源项目推荐:MCP Registry——管理MCP服务器的利器
  • Vue.js 中的 v-model 和 :value:理解父子组件的数据绑定
  • Python 可迭代的对象、迭代器 和生成器(何时使用生成器表达式)
  • Linux基本指令篇 —— more指令