--- created: 2025-08-31T10:37 updated: 2025-08-31T10:47 --- 以下是 **MinIO(S3兼容存储)的Docker部署教程**,支持私有化部署和API兼容AWS S3: --- ### **1. 快速启动(单机版)** #### 基础命令 ```bash docker run -d \ -p 9000:9000 -p 9001:9001 \ -v /mnt/data:/data \ -e "MINIO_ROOT_USER=admin" \ -e "MINIO_ROOT_PASSWORD=your_strong_password" \ --name minio \ quay.io/minio/minio server /data --console-address ":9001" ``` - **访问控制台**:`http://服务器IP:9001` - **API端点**:`http://服务器IP:9000` - 默认账号:`admin` / 密码:`your_strong_password` --- ### **2. 生产环境配置(docker-compose.yml)** ```yaml version: '3.7' services: minio: image: quay.io/minio/minio command: server /data --console-address ":9001" ports: - "9000:9000" # API端口 - "9001:9001" # 控制台端口 volumes: - ./minio-data:/data environment: MINIO_ROOT_USER: admin MINIO_ROOT_PASSWORD: your_strong_password restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 ``` --- ### **3. 分布式部署(4节点示例)** ```bash # 每个节点执行(修改对应IP和目录) docker run -d \ --net=host \ -v /mnt/disk1:/data1 \ -v /mnt/disk2:/data2 \ quay.io/minio/minio server \ http://node{1...4}/data{1...2} \ --console-address ":9001" ``` > 📌 要求: > - 至少4个节点 > - 每个节点2块磁盘 > - 同一内网互通 --- ### **4. 客户端连接配置** #### AWS CLI配置 ```bash aws configure set aws_access_key_id admin aws configure set aws_secret_access_key your_strong_password aws configure set default.region us-east-1 aws --endpoint-url http://localhost:9000 s3 ls ``` #### Python示例 ```python import boto3 s3 = boto3.client('s3', endpoint_url='http://localhost:9000', aws_access_key_id='admin', aws_secret_access_key='your_strong_password') s3.create_bucket(Bucket='my-bucket') ``` --- ### **5. 常见问题解决** #### 🔴 存储权限问题 ```bash # 修改数据卷权限 chown -R 1001:1001 /mnt/data ``` #### 🟡 控制台无法访问 检查防火墙规则: ```bash sudo ufw allow 9000/tcp sudo ufw allow 9001/tcp ``` #### 🟢 数据备份 ```bash # 使用mc客户端同步 docker run -it --entrypoint=/bin/sh minio/mc mc mirror local/ minio/backup-bucket/ ``` --- ### **6. 监控与运维** #### 启用Prometheus监控 ```yaml # 在docker-compose.yml中添加环境变量 environment: MINIO_PROMETHEUS_AUTH_TYPE: "public" MINIO_PROMETHEUS_URL: "http://prometheus:9090" ``` #### 日志查看 ```bash docker logs --tail 100 -f minio ``` --- ### **7. 进阶功能** | 功能 | 配置方法 | |--------------------|---------------------------------------| | **SSL证书** | 挂载证书到`/root/.minio/certs`目录 | | **版本控制** | `mc version enable my-bucket` | | **生命周期管理** | 通过控制台配置自动删除规则 | | **多租户** | 使用`mc admin policy`创建独立用户权限 | > 💡 推荐工具: > - 管理客户端:[`mc`命令行工具](https://min.io/docs/minio/linux/reference/minio-mc.html) > - 可视化工具:[MinIO Console](http://localhost:9001) 需要更详细的HTTPS配置或性能优化参数吗?