摘要
本文使用 MinIO 官方容器文档中的镜像 quay.io/minio/minio,在 Docker 中部署单节点单磁盘 MinIO,完成 API 端口、Console 控制台、命名卷持久化、Bucket 创建和重启验证。该方案适合本地开发、学习和功能评估,不等同于生产环境的高可用部署。
一、端口和数据目录
- 9000:S3 API,程序上传下载对象使用。
- 9001:Web Console,浏览器管理使用。
- /data:MinIO 容器内对象数据目录。
二、前置准备
docker version
docker info
确认 Docker 已启动,主机 9000 和 9001 端口没有被占用,并预留对象文件所需空间。
三、创建数据卷并启动
docker volume create minio_data
docker volume inspect minio_data
把示例密码替换成强密码:
docker run -d --name minio -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=minioadmin -e MINIO_ROOT_PASSWORD=ChangeMe_123456 -v minio_data:/data --restart unless-stopped quay.io/minio/minio:latest server /data --console-address ":9001"
latest 是移动标签,生产环境应选择经过验证的固定版本。root 密码不能使用示例值。
四、确认服务和登录控制台
docker ps --filter "name=minio"
docker logs --tail 100 minio
浏览器打开:
http://localhost:9001
使用启动命令中的账号密码登录。应用程序访问:
http://localhost:9000
五、创建 Bucket 和测试对象
在 Console 中创建 app-files Bucket,上传一个小文件,再下载和删除它。不要为了方便直接开放公开访问,访问策略应按业务需要最小化配置。
六、重启持久化验证
docker restart minio
docker logs --tail 50 minio
docker volume inspect minio_data
重新登录 Console,确认 Bucket 和测试对象仍然存在。命名卷独立于容器,但不是备份。
七、mc 客户端(可选)
docker run --rm --entrypoint="" minio/mc --version
Windows Docker Desktop 的 network host 行为与 Linux 有差异,mc 连接失败时先使用 Console 验证服务,不要直接判断 MinIO 不可用。
八、生产边界
官方容器文档中的单节点单磁盘流程主要适合开发和评估。生产环境还需要固定镜像版本、TLS、最小权限、独立备份、恢复测试以及符合业务要求的多节点架构。
九、常见问题
Console 打不开
检查 9001 端口映射、容器日志和 Docker 防火墙:
docker ps
docker logs --tail 100 minio
删除容器后对象是否还在
只要没有删除 minio_data,通常可以用同一个卷重新创建容器。删除卷前先确认备份。
卸载
docker rm -f minio
docker volume rm minio_data
docker image rm quay.io/minio/minio:latest
删除卷会永久删除对象数据。
十、官方资料
总结
本教程完成了 Console 登录、API 端口、Bucket 操作、命名卷和重启验证。单节点方案适合本地学习,不应直接当作生产高可用方案。