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

Linux上使用Docker安装MinIO指南

前置要求

  • Linux服务器(Ubuntu/CentOS/Debian等)

  • 已安装Docker和Docker Compose

  • 服务器开放9000和9001端口(或自定义端口)

方法一:使用Docker命令直接运行(推荐快速测试)

1. 拉取MinIO镜像

docker pull minio/minio

2. 创建数据目录

mkdir -p /opt/minio/data
mkdir -p /opt/minio/config

3. 运行MinIO容器

docker run -d \--name minio \--restart=always \-p 9000:9000 \-p 9001:9001 \-e "MINIO_ROOT_USER=minio123" \-e "MINIO_ROOT_PASSWORD=minio123" \-v /opt/minio/data:/data \-v /opt/minio/config:/root/.minio \minio/minio server /data \--console-address ":9001"

参数说明:

  • -d: 后台运行

  • --name minio: 容器名称

  • --restart=always: 开机自启

  • -p 9000:9000: API端口映射

  • -p 9001:9001: 控制台端口映射

  • -e MINIO_ROOT_USER: 管理员用户名

  • -e MINIO_ROOT_PASSWORD: 管理员密码

  • -v /opt/minio/data:/data: 数据目录挂载

  • --console-address ":9001": 控制台访问地址

方法二:使用Docker Compose(推荐生产环境)

1. 创建docker-compose.yml文件

mkdir -p /opt/minio
cd /opt/minio
vim docker-compose.yml

2. docker-compose.yml内容

version: '3.8'
​
services:minio:image: minio/minio:latestcontainer_name: miniorestart: alwaysports:- "9000:9000"   # API端口- "9001:9001"   # 控制台端口environment:MINIO_ROOT_USER: minio123MINIO_ROOT_PASSWORD: minio123volumes:- ./data:/data- ./config:/root/.miniocommand: server /data --console-address ":9001"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3

3. 启动MinIO

# 创建数据目录
mkdir -p data config

​
# 启动服务
docker-compose up -d​
# 查看日志
docker-compose logs -f minio

4. 停止和重启

# 停止
docker-compose down
​
# 重启
docker-compose restart
​
# 查看状态
docker-compose ps

方法三:使用自定义配置(生产环境推荐)

1. 创建配置文件

mkdir -p /opt/minio/{data,config}

2. 运行容器(自定义端口和路径)

docker run -d \--name minio \--restart=always \-p 9000:9000 \-p 9001:9001 \-e "MINIO_ROOT_USER=你的用户名" \-e "MINIO_ROOT_PASSWORD=你的强密码" \-v /opt/minio/data:/data \-v /opt/minio/config:/root/.minio \minio/minio server /data \--console-address ":9001" \--address ":9000"

访问MinIO

API访问地址

http://你的服务器IP:9000

控制台访问地址

http://你的服务器IP:9001

使用配置的用户名和密码登录控制台。

与项目配置对接

根据您的application.yml配置,确保以下设置:

minio:endpoint: http://132.232.198.207:9000  # 修改为你的服务器IPaccessKey: minio123                     # 与MINIO_ROOT_USER一致secretKey: minio123                     # 与MINIO_ROOT_PASSWORD一致bucketName: zhiyanusePathStyleAccess: trueenable: true

创建存储桶(Bucket)

方法1:通过控制台创建

  1. 访问 http://你的服务器IP:9001

  2. 登录后点击"Create Bucket"

  3. 输入桶名称:zhiyan

  4. 设置访问策略(如果需要公开访问)

方法2:使用MinIO客户端(mc)

# 下载mc客户端
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/# 配置MinIO服务器
mc alias set myminio http://你的服务器IP:9000 minio123 minio123# 创建存储桶
mc mb myminio/zhiyan# 设置存储桶策略(公开读)
mc anonymous set download myminio/zhiyan# 列出存储桶
mc ls myminio

防火墙配置

CentOS/RHEL

# 开放端口
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=9001/tcp
firewall-cmd --reload

Ubuntu/Debian

# 使用ufw
ufw allow 9000/tcp
ufw allow 9001/tcp
ufw reload

数据备份

MinIO的数据存储在挂载的目录中,定期备份/opt/minio/data目录即可:

# 备份示例
tar -czf minio-backup-$(date +%Y%m%d).tar.gz /opt/minio/data

常用管理命令

# 查看容器状态
docker ps | grep minio# 查看日志
docker logs -f minio# 进入容器
docker exec -it minio sh# 停止容器
docker stop minio# 启动容器
docker start minio# 删除容器(注意:不会删除数据)
docker rm minio# 查看资源使用
docker stats minio

故障排查

1. 端口被占用

# 检查端口占用
netstat -tulpn | grep 9000
lsof -i:9000# 修改端口映射
# 将 -p 9000:9000 改为 -p 其他端口:9000

2. 权限问题

# 确保数据目录有写权限
chmod -R 777 /opt/minio/data
chown -R 1000:1000 /opt/minio/data  # MinIO默认使用UID 1000

3. 无法访问控制台

  • 检查防火墙设置

  • 确认控制台端口映射正确(应该是9001)

  • 检查容器日志:docker logs minio

4. 连接超时

  • 检查网络连接

  • 验证endpoint地址是否正确

  • 检查防火墙和SELinux设置

生产环境建议

  1. 使用强密码:不要使用默认的minio123,改为复杂密码

  2. 启用SSL/TLS:生产环境建议配置HTTPS

  3. 定期备份:设置自动备份任务

  4. 监控资源:监控磁盘空间和容器资源使用

  5. 日志管理:配置日志轮转避免日志文件过大

  6. 多节点部署:生产环境考虑MinIO分布式部署

验证安装

安装完成后,运行以下命令验证:

# 检查容器状态
docker ps | grep minio# 测试API
curl http://localhost:9000/minio/health/live# 访问控制台
curl -I http://localhost:9001

如果都能正常响应,说明MinIO安装成功!

http://www.dtcms.com/a/552960.html

相关文章:

  • Maven 依赖冲突:解决 jar 包版本不一致的 3 种方法
  • android集成react native组件踩坑笔记(Activity局部展示RN的组件)
  • 多语言网站思路十大h5页面制作工具
  • 汽车之家网站系统是什么做的防爆玻璃门网站建设
  • k8s——services资源+pod详解1
  • 基于深度学习的医疗器械分类编码映射系统:实现篇
  • [人工智能-大模型-122]:模型层 - RNN是通过神经元还是通过张量时间记录状态信息?时间状态信息是如何被更新的?
  • React 18.x 学习计划 - 第六天:React路由和导航
  • 逻辑回归正则化参数选择实验报告:贝叶斯优化与网格搜索的效率对比
  • 建设景区网站推文网站中了木马了怎么办
  • 【JAVA 进阶】重生之我要学会 JUC 并发编程
  • POST 数据提交注入测试sqlilabs less 11
  • 微服务高并发设计考虑要点
  • 解码LVGL Linux 系统(Ubuntu/WSL + 开发板)移植
  • 长春网站制作昆明君创网络科技有限公司
  • 把 CLI 搬上 Web:在内网打造“可二开”的 AI IDE,为什么这条路更现实?
  • iOS 上架应用市场全流程指南,App Store 审核机制、证书管理与跨平台免 Mac 上传发布方案(含开心上架实战)
  • 酒厂网站源码now9999网站提示建设中
  • iOS 中的引用计数
  • C++多线程运行整理
  • 【渲染引擎基础】圣杯架构——固定逻辑时长+插值渲染
  • iOS 崩溃日志分析工具全指南,多工具协同构建稳定性分析体系
  • 做网站推广的难点、襄阳地区网站做的好的
  • 从U-Net到U-Net++:图像分割网络的进阶之路
  • 打工人日报#20251031
  • Huggingface的国内镜像
  • 软件测试工程师面试准备
  • Applications Manager 仪表盘:新增功能亮点
  • 怎样做网站表白网站策划与建设阶段的推广
  • 持续更新|第12弹:基于yolo算法识别的物体抓取