Docker 安装 MinIO 完整教程(新手友好版)

摘要

本文使用 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 操作、命名卷和重启验证。单节点方案适合本地学习,不应直接当作生产高可用方案。

相关推荐
wz975414 小时前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
新*15 小时前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
小白的码BUG之路16 小时前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
AlfredZhao16 小时前
Docker Compose 平滑切换环境变量文件,容器配置不残留
docker
duansamve1 天前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
mengge.cloud1 天前
prometheus+k8s+弹性伸缩,综合项目
云原生·容器·kubernetes·prometheus
xbzb2 天前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
那明眸似水2 天前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
腾飞开源2 天前
03_Kubernetes 核心概念拆解:从 Spec/Status 收敛到工作负载控制器的设计逻辑
云原生·容器·kubernetes
知已难寻2 天前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器