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

相关推荐
Lethehong1 小时前
把Blinko放进极空间:Docker 部署自托管笔记,并实现多设备远程访问
笔记·docker·容器
xrlfreedom12 小时前
大厂 MCP 面试实录:内部 REST API 封装为可审计 MCP Tools 的落地方案
docker·mcp·提示注入防护
摇滚侠13 小时前
《Docker技术入门与实战 第4版》阅读笔记 2 Docker 镜像
笔记·docker·容器
云原生指北14 小时前
Docker Sandboxes 工作区怎么接:Direct、Clone 和它们的边界
git·docker·agent
玉宇夕落15 小时前
Docker + Nginx + Node.js 容器化部署 —— 从零到一理解反向代理与容器化原理
docker
ly768916 小时前
Docker 从入门到实践:镜像、容器、Dockerfile 与 Docker Compose 详解
运维·docker·容器
梦梦代码精17 小时前
基于UniApp+Vue3+ThinkPHP 8,这套知识付费系统的架构设计有点东西
java·低代码·docker·uni-app·开源·php
moMo20 小时前
从“巨轮”到“本地开发”:用 Docker 和 Nginx 解决你的端口焦虑
nginx·docker
有脚就行20 小时前
第33篇-KServe推理平台-标准化的K8s推理服务管理
人工智能·云原生·容器·kubernetes