🚀 引言
在 Linux 上安装 MinIO 很常见,一般有两种方式:直接运行二进制程序 或 Docker 部署。
🚀 方法一:直接安装(官方推荐)
1. 下载 MinIO Server
sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
如图:
2. 赋予可执行权限
sudo chmod +x /usr/local/bin/minio
3. 创建数据存储目录
sudo mkdir -p /data/minio
如图:
4. 设置账号密码(必须 8 位以上)
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
如图:
5. 启动 MinIO
minio server /data/minio --console-address ":9001"
- API 服务端口:9000
- 控制台管理端口:9001
- 打开浏览器访问:
http://服务器IP:9001
6. 问题排查:
6.1 问题一
这个错误表明 MinIO 服务没有足够的权限访问 /data/minio 目录。以下是完整的解决方案:
1. 修复目录权限(关键步骤)
sudo chown -R $USER:$USER /data/minio # 将目录所有权给当前用户
sudo chmod -R 755 /data/minio # 设置正确权限
2. 检查存储目录状态
ls -ld /data/minio # 检查目录权限
df -h /data # 检查磁盘空间和挂载状态
3. 以正确用户身份启动(两种方式)
方式一:当前用户直接启动
minio server /data/minio --console-address ":9001"
如图:
如需要后台启动:
nohup minio server /data/minio --console-address ":9001" > ~/minio.log 2>&1 &
方式二:创建专用系统用户(推荐生产环境)
sudo useradd -r -s /sbin/nologin minio-user
sudo chown -R minio-user:minio-user /data/minio
sudo -u minio-user minio server /data/minio --console-address ":9001"
4. 检查SELinux状态(如果启用)
sudo setenforce 0 # 临时禁用SELinux
# 或永久解决方案
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
如图:
5. 验证是否解决
ps aux | grep minio # 检查进程是否运行
netstat -tulnp | grep 9001 # 检查端口监听
curl http://localhost:9001 # 测试控制台访问
6. 持久化配置(可选)
创建 systemd 服务文件:
sudo tee /etc/systemd/system/minio.service <<EOF
[Unit]
Description=MinIO
After=network.target
[Service]
User=minio-user
Group=minio-user
ExecStart=/usr/local/bin/minio server /data/minio --console-address ":9001"
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now minio
🚀 方法二:Docker 部署
1. 拉取镜像
docker pull minio/minio
2. 启动容器
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
-e MINIO_ROOT_USER=admin \
-e MINIO_ROOT_PASSWORD=12345678 \
-v /data/minio:/data \
--name minio \
minio/minio server /data --console-address ":9001"
- 数据目录:
/data/minio - API:
http://服务器IP:9000 - 控制台:
http://服务器IP:9001
📦 开机自启(systemd 管理)
如果用的是 方法一(二进制) ,可以创建服务文件:
vim /etc/systemd/system/minio.service
内容:
[Unit]
Description=MinIO
After=network.target
[Service]
User=root
ExecStart=/usr/local/bin/minio server /data/minio --console-address ":9001"
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=12345678"
Restart=always
[Install]
WantedBy=multi-user.target
然后:
systemctl daemon-reload
systemctl enable minio
systemctl start minio
✅ 总结
- 开发环境:可以直接运行二进制或 Docker。
- 生产环境:推荐 Docker + Nginx 反向代理,再配合 HTTPS。