本文整理 MinIO 对象存储的 Docker 安装、数据目录挂载、控制台端口、Nginx 反向代理和完整安装脚本,适合快速搭建自有对象存储服务。
快捷安装
安装 Docker 并启动:
1 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
拉取 MinIO 镜像:
1 | docker pull minio/minio |
如果需要同时安装 Nginx,也可以使用 LNMP 安装包:
1 | wget https://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz && tar zxf lnmp2.0.tar.gz && cd lnmp2.0 && ./install.sh nginx |
启动 MinIO:
1 | docker run -p 9000:9000 -p 9001:9001 --name minio -e "MINIO_ROOT_USER=XXX" -e "MINIO_ROOT_PASSWORD=XXXX" -v /home/wwwroot/minio:/data minio/minio server /data --console-address ":9001" |
说明:
| 配置 | 作用 |
|---|---|
9000 |
S3 API 访问端口 |
9001 |
Web 控制台端口 |
/home/wwwroot/minio:/data |
把宿主机目录挂载为对象存储数据目录 |
MINIO_ROOT_USER |
管理员用户名 |
MINIO_ROOT_PASSWORD |
管理员密码 |
完整安装脚本
下面脚本会安装 Docker、启动 Docker、拉取 MinIO 和 Nginx 镜像、创建数据目录、读取管理员用户名和密码、启动 MinIO 容器并输出容器内网 IP。
1 |
|
新版本 MinIO 更推荐使用 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD。如果使用新版镜像,可以把脚本里的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 改成下面这种写法:
1 | -e MINIO_ROOT_USER="$username" \ |
查看容器状态
1 | docker ps |
如果需要重启:
1 | docker restart minio |
Nginx 反向代理
启动 Nginx 容器:
1 | docker run --name nginx -p 80:80 -p 443:443 -v /root/minio/nginx:/etc/nginx/conf.d -d nginx |
Nginx 配置示例:
1 | server { |
反向代理时需要注意:
- API 端口和控制台端口最好使用不同域名或不同路径。
- 需要保留 Host、真实 IP 和协议头。
- 如果启用 HTTPS,要确认 MinIO 控制台外部地址配置正确。
更通用的反向代理结构:
1 | server { |
指定存储目录
如果需要指定数据目录,可以挂载到 /usr/local/minio/data:
1 | docker run -d -p 9000:9000 -p 9001:9001 -e MINIO_ACCESS_KEY=LinXi -e MINIO_SECRET_KEY=LinXi123 --name minio -v /usr/local/minio/data:/data minio/minio server /data --console-address ":9001" |
同样建议在新版 MinIO 中改用:
1 | docker run -d -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=LinXi -e MINIO_ROOT_PASSWORD=LinXi123 --name minio -v /usr/local/minio/data:/data minio/minio server /data --console-address ":9001" |
生产环境建议
- 不要使用过短或弱口令。
- 数据目录要有备份策略。
- 控制台端口不要直接暴露给所有公网来源。
- 大文件和多用户场景要评估磁盘、带宽和备份成本。
- 如果只是项目静态资源,也可以评估云厂商 OSS、COS、S3 等托管服务。