服务器MinIO对象存储:零基础单机部署与验证教程
MinIO 是一个兼容 Amazon S3 API 的开源对象存储服务,适合在自有服务器上存放图片、备份、日志等非结构化数据。
如果你第一次接触服务器MinIO对象存储,最直接的路径是:下载官方二进制、用 systemd 托管、开放 API 和控制台端口、登录后创建 Bucket 并上传一个测试文件。
下面按这个顺序展开,Ubuntu 22.04 和 CentOS 7 均可参考。
先确认端口、目录和系统条件
MinIO 默认使用两个端口:9000 用于 S3 API,9001 用于 Web 控制台。
准备一台 64 位 Linux 服务器,建议内存不低于 1GB,数据盘最好独立挂载。
用以下命令确认系统架构和可用磁盘:
uname -m
df -h /data
如果 /data 不存在,先创建目录:
mkdir -p /data/minio-data
不要用 root 直接运行 MinIO 服务。 创建一个专用用户:
useradd -r -s /sbin/nologin minio-user
chown -R minio-user:minio-user /data/minio-data
下载二进制并配置 systemd 托管
从 MinIO 官方地址下载对应架构的二进制文件。
以下命令以 x86_64 为例:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
mv minio /usr/local/bin/
创建环境变量文件 /etc/default/minio,写入访问密钥和存储路径:
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=请替换为至少8位复杂密码
MINIO_VOLUMES="/data/minio-data"
MINIO_OPTS="--console-address :9001"
然后创建 systemd 服务文件 /etc/systemd/system/minio.service:
[Unit]
Description=MinIO
After=network.target
[Service]
User=minio-user
Group=minio-user
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
执行重载并启动:
systemctl daemon-reload
systemctl enable --now minio
systemctl status minio
看到 active (running) 说明服务已启动。
如果失败,用 journalctl -u minio -n 50 查看具体报错。
放行端口并登录控制台
根据你使用的防火墙工具开放端口。
使用 firewalld 时:
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=9001/tcp
firewall-cmd --reload
使用 ufw 时:
ufw allow 9000/tcp
ufw allow 9001/tcp
如果服务器在云厂商安全组内,还需要在控制台放行同样端口。
完成后浏览器访问 http://服务器IP:9001,用环境变量里设置的用户名和密码登录。
创建存储桶并验证读写
登录控制台后,点击 Buckets 菜单,创建一个 Bucket,例如 test-bucket。
Bucket 名称只能包含小写字母、数字和连字符。
创建完成后进入该 Bucket,点击 Upload 上传一个小文件。
上传成功后,可以用命令行再验证一次。
安装 mc 客户端:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/
添加别名并列出 Bucket:
mc alias set myminio http://127.0.0.1:9000 admin 你的密码
mc ls myminio
能列出 test-bucket 即说明 API 和存储路径都正常。
常见报错与避坑说明
- 启动后控制台打不开:先检查
systemctl status minio是否运行,再确认防火墙和云安全组是否放行 9001 端口。 - 提示 Access Denied:检查
/etc/default/minio中的用户名密码是否和登录时一致,修改后需systemctl restart minio。 - 存储路径权限不足:确保
/data/minio-data的属主是minio-user,不要直接 chmod 777。 - 数据盘写满:MinIO 不会自动清理,建议提前规划容量并监控磁盘使用率。
- 不要用 root 运行:systemd 文件中已指定
User=minio-user,不要改成 root,避免权限和安全风险。
收尾检查
部署完成后,建议依次确认:服务是否开机自启、两个端口是否可从外部访问、Bucket 是否能正常上传下载、日志中是否有持续报错。
如果只是本地测试,也可以只用 minio server /data/minio-data --console-address :9001 前台启动,但生产环境仍推荐 systemd 托管。
遇到异常时,优先回看服务状态和防火墙配置,这两处覆盖了大多数新手问题。