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  # 修改为你的服务器IP
  accessKey: minio123                     # 与MINIO_ROOT_USER一致
  secretKey: minio123                     # 与MINIO_ROOT_PASSWORD一致
  bucketName: zhiyan
  usePathStyleAccess: true
  enable: 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安装成功!

相关推荐
SilentSamsara8 小时前
存储卷体系:EmptyDir/HostPath/PV/PVC/StorageClass 的选型决策树
服务器·微服务·云原生·容器·架构·kubernetes·k8s
王的宝库9 小时前
【K8s】集群安全机制(二):授权(Authorization)详解与实战
学习·云原生·容器·kubernetes
indexsunny10 小时前
互联网大厂Java面试实录:微服务+Spring Boot在电商场景中的应用
java·spring boot·redis·微服务·eureka·kafka·spring security
东北甜妹11 小时前
Docker 容器故障排查
云原生·eureka
Shining059612 小时前
QEMU 编译开发环境搭建
人工智能·语言模型·自然语言处理·云原生·qemu·vllm·华为昇腾
匀泪1 天前
云原生(Kubernetes service微服务)
微服务·云原生·kubernetes
倔强的胖蚂蚁1 天前
Ollama Modelfile 配置文件 全指南
云原生·开源
AutoMQ1 天前
AWS 新发布的 S3 Files 适合作为 Kafka 的存储吗?
云原生·消息队列·云计算
MY_TEUCK2 天前
从零开始:使用Sealos Devbox快速搭建云原生开发环境
人工智能·spring boot·ai·云原生·aigc
没有口袋啦2 天前
《基于 GitOps 理念的企业级自动化 CI/CD 流水线》
阿里云·ci/cd·云原生·自动化·k8s