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

相关推荐
2501_938769994 小时前
云计算:IaaS和PaaS区别
云原生·云计算·paas
華勳全栈5 小时前
生产环境用Go语言完成微服务搭建和业务融入
微服务·云原生·架构
xx.ii15 小时前
k8s的资源管理
云原生·容器·kubernetes
维尔切15 小时前
k8s 实战入门
云原生·容器·kubernetes
xx.ii15 小时前
K8s练习
云原生·容器·kubernetes
算是难了15 小时前
K8s基础总结
云原生·容器·kubernetes
失因15 小时前
Kubernetes(K8s)资源管理
云原生·容器·kubernetes
KubeSphere 云原生15 小时前
Fluid 正式入驻青云 KubeSphere Marketplace,共建云原生数据加速新生态
云原生
阿里云云原生17 小时前
云栖实录:重构可观测 - 打造大模型驱动的云监控 2.0 与 AIOps 新范式
阿里云·云原生·重构·云监控·可观测