Docker部署MinIO对象存储全教程
部署前的准备工作
使用 Docker 部署 MinIO 之前,需要先确保已经安装了 Docker 环境。
如果你还没装,可以访问 Docker 官网下载对应系统的安装包,或者用包管理器安装(例如 CentOS 用 yum install docker,Ubuntu 用 apt install docker.io)。
安装完成后执行 docker --version 验证版本,确认服务正在运行。
另外,准备好一个用于存放数据的目录(比如 /data/minio),MinIO 的数据和配置文件都会写在这里。
启动 MinIO 容器
拉取镜像是最简单的一步,打开终端执行:
docker pull minio/minio
拉取完成后,用下面的命令启动容器。
注意替换 YOUR_ACCESS_KEY 和 YOUR_SECRET_KEY 为你自己的访问密钥(长度至少 8 个字符),同时将宿主机目录 /data/minio 映射到容器内的 /data 目录。
docker run -d \
-p 9000:9000 \
-p 9090:9090 \
--name minio \
-v /data/minio:/data \
-e MINIO_ROOT_USER=YOUR_ACCESS_KEY \
-e MINIO_ROOT_PASSWORD=YOUR_SECRET_KEY \
minio/minio server /data --console-address ":9090"
参数说明:
-p 9000:9000映射 API 端口(用于文件上传下载)。-p 9090:9090映射 Web 控制台端口。-e设置环境变量,定义管理员账号和密码。--console-address ":9090"指定控制台监听 9090 端口。
启动后执行 docker ps 查看容器状态,如果状态为 Up 说明启动成功。
访问 Web 控制台并创建存储桶
打开浏览器,访问 http://你的服务器IP:9090。
首次登录使用刚才设置的 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD。
登录后可以看到 MinIO 的 Dashboard。
点击左侧菜单“Buckets”进入存储桶管理页面,点击“Create Bucket”按钮,输入一个全局唯一的桶名称(例如 my-bucket),确认创建。
如果你需要通过第三方应用(如 Nextcloud、WordPress)连接 MinIO,还需要在控制台创建一个访问密钥(Access Keys)。
点击左侧“Identity” -> “Users”,创建一个新用户并设置策略(可选),然后生成对应的 Access Key 和 Secret Key。
常见问题与避坑说明
问题1:容器启动后马上退出
检查日志 docker logs minio,通常是因为 /data 目录权限不足。
执行 chmod 777 /data/minio 或使用 chown 将目录所有者改为容器用户(1000:1000)。
问题2:无法访问 9090 端口
确认服务器防火墙放行了 9090 端口。
如果是云服务器,还需要在安全组中添加入站规则。
问题3:上传文件时报错“Access Denied”
检查使用的 Access Key 和 Secret Key 是否正确,以及该用户是否被授予了对应存储桶的写入权限。
可以在控制台“Buckets”中编辑存储桶策略,或者为用户绑定“readwrite”策略。
避坑提醒:
- 生产环境建议将数据目录放在独立的数据盘,并定期备份。
- 不要使用过于简单的密码,避免被暴力破解。
- 如果需要在公网暴露 MinIO,务必配置 HTTPS,可以使用 Nginx 反向代理并挂载 SSL 证书。
效果验证
执行以下命令上传一个测试文件到刚创建的存储桶:
echo "Hello MinIO" > test.txt
docker cp test.txt minio:/data/my-bucket/
登录控制台进入 my-bucket 存储桶,如果能看到 test.txt 文件,说明部署成功且读写正常。
你也可以通过 API 访问(默认端口 9000),或使用 mc 客户端进一步测试。
如果你正在处理 Docker部署MinIO对象存储,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。