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

相关推荐
victory04311 小时前
K8S containerd 打包镜像和部署流程和注意事项
云原生·容器·kubernetes
2501_941799481 小时前
人工智能与自动化:塑造未来工作的革命
eureka
2501_941149111 小时前
人工智能与自动化:未来工作方式的重塑
eureka
Serverless 社区5 小时前
【本不该故障系列】从 runC 到 runD:SAE 如何化解安全泄露风险
安全·云原生·serverless
2501_941809146 小时前
区块链与去中心化金融:重构全球金融体系的力量
eureka
2501_941142136 小时前
边缘计算与物联网:智能化时代的全新技术生态
eureka
2501_941799487 小时前
区块链与供应链管理:重塑全球贸易的透明与效率
eureka
Yuriey8 小时前
K8s部署实践-基于Debian13(Trixie)
云原生·容器·kubernetes
楠枬8 小时前
服务注册与发现——Eureka
spring cloud·eureka·服务发现
java_logo8 小时前
GPUSTACK Docker 容器化部署指南
运维·mongodb·docker·云原生·容器·eureka·express