当前位置: 首页 > 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:latest   container_name: minio   restart: always   ports:     - "9000:9000"   # API端口     - "9001:9001"   # 控制台端口   environment:     MINIO_ROOT_USER: minio123     MINIO_ROOT_PASSWORD: minio123   volumes:     - ./data:/data     - ./config:/root/.minio   command: server /data --console-address ":9001"   healthcheck:     test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]     interval: 30s     timeout: 20s     retries: 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.jsqmd.com/news/78716/

相关文章:

  • React性能优化实战:3步定位并解决90%的组件渲染问题
  • 第33课 鼠线的打开及关闭
  • 对Ai元人文构想的阐释与延伸
  • 用AI构建导师评价系统:5分钟开发全流程
  • C盘如何清理?
  • 大模型转型全攻略:从零基础到高薪就业的完整路径(收藏必看)
  • UMA模型终极指南:重新定义材料科学AI的革命性突破
  • MCP集成RAG实战指南:零基础实现运维智能问答系统
  • 5分钟用Python+YAML搭建原型系统
  • 8G显存多模态AI革命:MiniCPM-Llama3-V 2.5-int4量化版深度解析
  • Turn.js翻页效果深度解析:从入门到精通的完整实战指南
  • 哈哈数量的环境里
  • B站音频下载终极指南:用BiliFM解放你的耳朵
  • UE5 材质-28-各种节点:三输出的 if 节点,借助于 time 节点和 Frac(只取小数部分)得到纹理的溶解效果。 也可用于测试 TextureCoordinate 节点的输出向量的值是什么
  • LTC3542逆向分析——一个极具参考价值的Buck型DCDC电路
  • EEHZA1H101P, 具备10000小时高耐久性的混合电容器, 现货库存
  • 从零到一:ArcObjects SDK实战开发完全指南
  • 零基础搭建简易版6v电影网教程
  • 基于超像素和基于图论的图像分割手段
  • C盘清理?
  • 漏洞挖掘典型场景和思路(非常详细)零基础入门到精通,收藏这一篇就够了
  • MurphySec终极指南:免费开源软件供应链安全检测工具快速上手
  • 计算机视觉技术应用与CNN图像识别机制探究​与CV技术应用现状及CNN图像对象识别流程剖析
  • CHA5659-98F/00 36-43.5GHz 功率放大器
  • UE5 材质-29-各种节点:
  • Agent搭建框架全解析
  • OpenSCA-cli终极指南:免费软件成分分析工具快速上手
  • yadm点文件管理:5分钟解决90%常见问题的终极指南
  • 多模态AI如何用80亿参数重塑智能应用新范式?
  • POML终极指南:5步构建企业级AI应用的完整方案