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安装成功!

相关推荐
星图易码1 小时前
星图云开发者平台功能详解 | 微服务管理器:异构服务零门槛无缝集成
微服务·云原生·架构
小二·1 小时前
Go 语言系统编程与云原生开发实战(第4篇):数据持久化深度实战 —— PostgreSQL、GORM 与 Repository 模式
postgresql·云原生·golang
麦兜*1 小时前
深入解析云原生时代的高性能消息中间件:基于Apache Pulsar与Kafka架构对比的万亿级数据吞吐与低延迟实时处理实战
云原生·kafka·apache
KubeSphere 云原生1 小时前
在 KubeSphere 上运行 Moltbot(Clawdbot):自托管 AI 助手的云原生实践
docker·云原生·容器
Clarence Liu3 小时前
k8s 1.35 使用kubeadm部署高可用集群
云原生·容器·kubernetes
麦兜*3 小时前
深入解析云原生AI应用全栈架构:从Kubernetes智能调度与Istio服务网格到Knative事件驱动与Prometheus可观测性实战指南
人工智能·云原生·架构
摆烂z4 小时前
k8s频繁拉取镜像导致磁盘占满imagefs
云原生·容器·kubernetes
摸鱼仙人~4 小时前
OpenManus沙箱实现解析:从Docker容器到轻量替代方案
docker·容器·eureka
螺旋小蜗4 小时前
docker-compose文件属性(14)build
java·docker·eureka
牛奶咖啡134 小时前
Prometheus+Grafana构建云原生分布式监控系统(十一)_基于consul的服务发现
云原生·prometheus·consul的安装部署·consul服务自动发现·consul服务的注册删除·consul服务的更新·实现自动去consul注册服务