欢迎光临
我们一直在努力

MinIo开发环境配置方案(Docker版本)

目录

本地开发配置(简化版):

  • 使用HTTP

  • 简单的密码(方便开发)

  • 不需要SSL证书

生产环境配置(增强版):

  • 使用HTTPS

  • 强密码(从环境变量文件或Docker secrets获取)

  • 资源限制

  • 日志配置

  • 健康检查

  • 可能的分布式部署(这里先给单机生产配置)

创建配置文件:

  • docker-compose.yml 用于开发或生产

同时,创建对应的环境变量文件:

  • .env 用于dev 或prod

注意:生产环境配置需要SSL证书,将假设证书已放置在指定的目录中。

步骤:

  • 开发配置(基于现有的简化配置)

  • 生产配置(增加SSL、安全设置等)

开发与生产环境配置方案

1. 生产环境 docker-compose.yml

version: '3.8'

services:
minio:
image: minio/minio:RELEASE.2024-12-19T12-27-05Z # 生产环境使用固定版本
container_name: minio_production
restart: always
hostname: minio
ports:
– "${MINIO_PORT:-9000}:9000"
– "${MINIO_CONSOLE_PORT:-9001}:9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
MINIO_SERVER_URL: ${MINIO_SERVER_URL}
MINIO_BROWSER_REDIRECT_URL: ${MINIO_BROWSER_REDIRECT_URL}
MINIO_REGION: ${MINIO_REGION:-cn-east-1}
MINIO_PROMETHEUS_AUTH_TYPE: "public"
MINIO_BROWSER: "on"
# 生产环境可选的SSL配置
MINIO_ARGS: "${MINIO_ARGS:—certs-dir /root/.minio/certs}"
volumes:
– ${MINIO_DATA_DIR:-./data}:/data
– ${MINIO_CONFIG_DIR:-./config}:/root/.minio
– ${CERTS_DIR:-./certs}:/root/.minio/certs # SSL证书目录
– /etc/timezone:/etc/timezone:ro
– /etc/localtime:/etc/localtime:ro
command: server /data –console-address ":9001"
healthcheck:
test: ["CMD", "minio", "ready"]
interval: 30s
timeout: 20s
retries: 3
start_period: 30s
networks:
– minio_network
deploy:
resources:
limits:
memory: 4G
cpus: '2'
reservations:
memory: 2G
cpus: '1'
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "10"
security_opt:
– no-new-privileges:true
read_only: false # 数据目录需要写权限

# MinIO客户端,用于自动化管理
mc:
image: minio/mc:latest
container_name: minio_client
restart: unless-stopped
entrypoint: >
/bin/sh -c "
echo 'Waiting for MinIO to be ready…';
until curl -s ${MINIO_SERVER_URL}/minio/health/live > /dev/null; do
sleep 2;
done;
echo 'Setting up MinIO client…';
/usr/bin/mc alias set minio ${MINIO_SERVER_URL} ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD} –api s3v4;
/usr/bin/mc mb minio/backup 2>/dev/null || true;
/usr/bin/mc mb minio/temp 2>/dev/null || true;
/usr/bin/mc mb minio/logs 2>/dev/null || true;
echo 'MinIO client ready.';
tail -f /dev/null
"
depends_on:
– minio
networks:
– minio_network

networks:
minio_network:
driver: bridge
ipam:
driver: default
config:
– subnet: 172.22.0.0/16

2. 生产环境 .env 文件

# ==============================================
# MinIO 生产环境配置
# ==============================================
# 重要:此文件包含敏感信息,切勿提交到版本控制系统!

# 1. 管理员凭据 – 必须使用强密码!
# 生成命令:openssl rand -base64 32
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=YourStrongPasswordHere!@#123

# 2. 服务访问地址 – 根据实际部署环境配置
# 选项A:HTTPS + 域名(推荐)
MINIO_SERVER_URL=https://storage.yourdomain.com
MINIO_BROWSER_REDIRECT_URL=https://console.storage.yourdomain.com

# 选项B:HTTPS + IP地址
# MINIO_SERVER_URL=https://192.168.1.100:9000
# MINIO_BROWSER_REDIRECT_URL=https://192.168.1.100:9001

# 选项C:HTTP + 内网访问(仅测试用)
# MINIO_SERVER_URL=http://localhost:9000
# MINIO_BROWSER_REDIRECT_URL=http://localhost:9001

# 3. 存储区域 – 根据服务器地理位置设置
MINIO_REGION=cn-east-1

# 4. 端口配置
MINIO_PORT=9000
MINIO_CONSOLE_PORT=9001

# 5. 存储路径 – 建议使用独立磁盘挂载
MINIO_DATA_DIR=/mnt/minio/data
MINIO_CONFIG_DIR=/mnt/minio/config

# 6. SSL证书路径
CERTS_DIR=/etc/minio/certs

# 7. 可选:自定义启动参数
# MINIO_ARGS=–certs-dir /root/.minio/certs –address ":9000"

3. 开发环境 docker-compose.yml

(开发为简化配置可不使用环境变量,但生产需要。)

version: '3.8'

services:
minio:
image: minio/minio:latest
container_name: minio_dev
restart: unless-stopped
ports:
– "9000:9000"
– "9001:9001"
environment:
# 直接使用硬编码值,避免环境变量问题
MINIO_ROOT_USER: "admin"
MINIO_ROOT_PASSWORD: "admin123"
# 可选:如果不需要重定向可以注释掉
# MINIO_SERVER_URL: "http://localhost:9000"
# MINIO_BROWSER_REDIRECT_URL: "http://localhost:9001"
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: 10s
retries: 3
start_period: 40s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

4. 一些必要配置文件说明

minio-project/
├── .env.example # 配置示例文件
├── .env.development # 开发环境配置
├── .env.production # 生产环境配置
├── docker-compose.yml # 基础配置
├── docker-compose.override.yml # 环境特定配置(自动生成)
├── docker-compose.dev.yml # 开发环境配置
├── deploy.sh # 部署脚本
├── switch-env.sh # 环境切换脚本
├── scripts/ # 其他脚本
│ ├── backup.sh # 备份脚本
│ ├── restore.sh # 恢复脚本
│ └── monitor.sh # 监控脚本
├── certs/ # SSL证书目录(生产环境)
│ ├── private.key
│ └── public.crt
├── data/ # 数据存储目录
├── config/ # 配置目录
└── README.md # 项目说明文档

日常管理

# 查看状态
docker-compose ps

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

# 启动服务
docker-compose up -d

5. 生产环境安全建议

  • 必须修改的项:

    • 修改默认密码为强密码

    • 使用HTTPS而不是HTTP

    • 配置防火墙,只允许必要IP访问

    • 启用访问日志审计

  • 定期维护:

    • 定期备份配置和数据

    • 监控磁盘使用率

    • 更新MinIO版本(注意测试兼容性)

  • 监控告警:

    • 配置Prometheus监控

    • 设置磁盘空间告警

    • 监控API访问频率

  • 赞(0)
    未经允许不得转载:171主机测评 » MinIo开发环境配置方案(Docker版本)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址