MinIO 是一个高性能、兼容 S3 的对象存储解决方案,采用 GNU AGPL v3.0 许可证开源发布。它专为速度和可扩展性而设计,能够以业界领先的性能支持 AI/ML、分析和数据密集型工作负载。
🔹 兼容 S3 API – 可以无缝集成现有的 S3 工具 🔹 为 AI 和分析而构建 – 针对大规模数据管道进行了优化 🔹 高性能 – 非常适合要求严苛的存储工作负载
👉 AI 存储文档地址:https://min.io/solutions/object-storage-for-ai
本 README 提供了在裸金属硬件上运行 MinIO 的快速上手指南,包括基于容器的安装方式。如果你使用的是 Kubernetes 环境,请参考 MinIO Kubernetes Operator。
容器安装
使用以下命令运行一个独立(standalone)的 MinIO 容器服务:
独立的 MinIO 服务适合早期开发和评估。像版本控制(versioning)、对象锁定(object locking)、桶复制(bucket replication)等功能需要使用纠删码(Erasure Coding)部署的分布式 MinIO。 在长期开发或生产环境中,建议启用纠删码并至少为每个 MinIO 服务器配置 4 个驱动器。详细文档见:MinIO Erasure Code 概述。
稳定版本
运行以下命令,在容器中以临时数据卷的方式启动最新稳定版的 MinIO:
podman run -p 9000:9000 -p 9001:9001 \
quay.io/minio/minio server /data --console-address ":9001"
MinIO 部署启动后默认使用的 root 凭证是:minioadmin:minioadmin
。你可以通过 MinIO Console(一个内嵌的对象浏览器)来测试部署结果。打开浏览器访问 http://127.0.0.1:9000,使用默认凭证登录。你可以在浏览器中创建 bucket、上传对象,并浏览 MinIO 中的内容。
你也可以使用任何兼容 S3 的工具进行连接,比如 MinIO 的命令行工具 mc
。查看 使用 MinIO Client mc
测试 了解详情。
如果你是应用开发者,可以访问 https://min.io/docs/minio/linux/developers/minio-drivers.html,查看支持的语言 SDK。
[!NOTE] 如果要将 MinIO 部署到持久化存储上,你需要使用
podman -v
参数将主机的本地持久目录映射到容器。例如:-v /mnt/data:/data
表示将主机的/mnt/data
挂载到容器的/data
。
macOS
使用以下命令可以在 macOS 上运行一个独立的 MinIO 服务。
独立的 MinIO 服务适合早期开发和评估。某些功能(比如版本控制、对象锁定、桶复制)需要使用纠删码(Erasure Coding)部署的分布式 MinIO。在长期开发或生产环境中,建议启用纠删码,并为每个 MinIO 服务实例配置 至少 4 个驱动器。详见 MinIO Erasure Code 概述。
使用 Homebrew(推荐方式)
运行以下命令,通过 Homebrew 安装最新稳定版本的 MinIO。请将 /data
替换为你希望存储 MinIO 数据的路径:
brew install minio/stable/minio
minio server /data
[!NOTE] 如果你之前使用
brew install minio
安装过 MinIO,建议重新从官方源minio/stable/minio
安装一次:
brew uninstall minio
brew install minio/stable/minio
MinIO 启动后会使用默认的 root 凭证 minioadmin:minioadmin
。你可以使用 MinIO Console(内嵌的 Web 对象浏览器)来测试部署情况。在主机浏览器中访问 http://127.0.0.1:9000,使用默认凭证登录,即可创建 bucket、上传对象和浏览数据。
你也可以使用兼容 S3 的工具连接,比如命令行工具 MinIO Client mc
。更多内容详见:使用 MinIO Client mc
测试。
如果你是开发者,也可以前往 https://min.io/docs/minio/linux/developers/minio-drivers.html/,查看支持的 SDK 列表。
使用二进制文件下载
使用以下命令下载并运行一个独立的 MinIO 服务(macOS)。请将 /data
替换为你希望用于存储数据的路径:
wget https://dl.min.io/server/minio/release/darwin-amd64/minio
chmod +x minio
./minio server /data
MinIO 启动后会使用默认 root 凭证 minioadmin:minioadmin
。你可以使用 MinIO Console 测试部署结果,浏览器访问 http://127.0.0.1:9000 登录后即可管理 bucket 和对象。
同样地,你可以通过 MinIO Client mc
工具或其他兼容 S3 的工具连接。更多内容见:使用 MinIO Client mc
测试。
开发者也可以查看 https://min.io/docs/minio/linux/developers/minio-drivers.html,获取各语言的 MinIO SDK。
GNU/Linux
在运行 64 位 Intel/AMD 架构的 Linux 主机上,可以使用以下命令来运行独立的 MinIO 服务。请将 /data
替换为你希望 MinIO 存储数据的目录路径:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
下表列出了 MinIO 支持的架构。请根据你的 Linux 主机架构替换下载链接中的地址:
架构类型 | 下载地址 |
---|---|
64 位 Intel/AMD | https://dl.min.io/server/minio/release/linux-amd64/minio |
64 位 ARM | https://dl.min.io/server/minio/release/linux-arm64/minio |
64 位 PowerPC LE (ppc64le) | https://dl.min.io/server/minio/release/linux-ppc64le/minio |
MinIO 启动后默认使用 root 凭证 minioadmin:minioadmin
。你可以通过内置的 MinIO Console(基于网页的对象浏览器)测试是否部署成功:在主机的浏览器中访问 http://127.0.0.1:9000,使用默认凭证登录,然后可以创建 bucket、上传对象和浏览数据。
此外,你也可以使用任何兼容 S3 的工具进行连接,比如 MinIO 的命令行工具 mc
。参考 使用 MinIO Client mc
测试。
开发者可以访问 https://min.io/docs/minio/linux/developers/minio-drivers.html,查看支持语言的 MinIO SDK。
[!NOTE] 独立的 MinIO 服务器最适合用于开发初期和测试评估。若需要使用如版本控制、对象锁定、桶复制等高级功能,必须通过纠删码方式部署分布式 MinIO。在长期开发或生产环境中,务必启用纠删码,并确保每个 MinIO 服务节点至少有 4 块硬盘。详细信息参见 MinIO Erasure Code 概述。
Microsoft Windows
如果你使用的是 64 位 Windows 主机,可以通过以下方式下载并运行 MinIO:
首先,下载 MinIO 可执行文件:
https://dl.min.io/server/minio/release/windows-amd64/minio.exe
然后,在命令行或 PowerShell 中运行以下命令来启动独立的 MinIO 服务。请将 D:\
替换为你希望用于存储数据的路径。你需要将终端目录切换到 minio.exe
所在的位置,或者将其所在目录添加到系统环境变量 $PATH
中:
minio.exe server D:\
MinIO 启动后默认使用的 root 凭证是:minioadmin:minioadmin
。你可以使用内置的 MinIO Console(基于网页的对象浏览器)进行测试:
打开浏览器访问 http://127.0.0.1:9000,使用默认凭证登录,创建 bucket、上传对象并浏览服务器上的内容。
你还可以使用任何兼容 S3 的工具连接 MinIO,比如命令行工具 MinIO Client mc
。更多信息请查看:使用 MinIO Client mc
测试。
开发者可参考 https://min.io/docs/minio/linux/developers/minio-drivers.html 查看各语言的 SDK。
[!NOTE] 独立的 MinIO 服务器适合用于开发初期和评估阶段。若要使用版本控制、对象锁定和桶复制等功能,必须使用纠删码部署的分布式 MinIO。 在正式开发或生产环境中,请启用纠删码,并确保 每个 MinIO 实例至少配置 4 个驱动器。详见:MinIO Erasure Code 概述。
从源码安装
使用以下命令从源码编译并运行一个独立的 MinIO 服务。源码安装仅适用于开发者及高级用户。如果你还没有配置好 Golang 环境,请参考 How to install Golang 进行安装,最低要求版本为 go1.24。
go install github.com/minio/minio@latest
MinIO 启动后默认使用 root 凭证 minioadmin:minioadmin
。你可以使用内置的 MinIO Console 进行测试:在主机的浏览器中访问 http://127.0.0.1:9000,使用默认凭证登录后,即可创建 bucket、上传对象并浏览服务器上的内容。
你也可以使用任何兼容 S3 的工具连接,比如 MinIO Client mc
。更多详情请参考:使用 MinIO Client mc
测试。
对于应用开发者,请访问 https://min.io/docs/minio/linux/developers/minio-drivers.html 查看支持的各语言 SDK。
[!NOTE] 独立的 MinIO 服务器最适用于开发初期和评估阶段。若需要使用版本控制、对象锁定或桶复制等功能,必须通过纠删码方式部署分布式 MinIO。在长期开发或生产环境中,请务必启用纠删码,并确保 每个 MinIO 实例至少配置 4 个驱动器。详见 MinIO Erasure Code 概述。
MinIO 强烈建议在生产环境中不要使用从源码编译的 MinIO 服务器。
部署建议
为防火墙开放端口
MinIO 默认监听端口 9000
,用于接收外部连接。如果你的系统或云平台默认阻止该端口,你需要手动开放它。
使用 ufw
(适用于基于 Debian 的发行版)
如果你的主机启用了 ufw
(Uncomplicated Firewall),可以使用如下命令允许访问特定端口。以下命令允许访问 9000
端口:
ufw allow 9000
如果你希望一次性放通 9000 到 9010 之间的所有端口,可以使用:
ufw allow 9000:9010/tcp
使用 firewall-cmd
(适用于 CentOS 等基于 RHEL 的系统)
若主机启用了 firewall-cmd
,可以使用如下命令开放所需端口。首先,查看当前使用中的防火墙区域:
firewall-cmd --get-active-zones
然后,将端口规则应用到上一步输出的区域。假设区域是 public
,则使用以下命令开放 9000
端口:
firewall-cmd --zone=public --add-port=9000/tcp --permanent
[!NOTE]
--permanent
表示该规则在防火墙重启或重新加载后仍然有效。添加完规则后,需要重新加载防火墙才能生效:
firewall-cmd --reload
使用 iptables
(适用于 RHEL、CentOS 等)
若主机使用 iptables
,可以用以下命令允许指定端口的流量通过。比如开放 9000
端口:
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
service iptables restart
如果你希望开放 9000 到 9010 的所有端口,可以使用:
iptables -A INPUT -p tcp --dport 9000:9010 -j ACCEPT
service iptables restart
测试 MinIO 的连通性(Test MinIO Connectivity)
你可以通过以下方式测试 MinIO 是否正常运行:
使用 MinIO Console
在浏览器中访问 http://127.0.0.1:9000,输入默认的 root
凭证 minioadmin:minioadmin
登录。登录成功后,你可以通过图形界面创建 bucket、上传对象或管理权限。
使用 curl
你也可以使用 curl
命令行工具测试:
curl http://localhost:9000
如果 MinIO 正常运行,它将返回类似 XML 格式的错误响应,提示缺少签名信息,这意味着服务器可以正常响应请求。
配置 MinIO 服务(Configure MinIO as a Service)
你可以将 MinIO 设置为系统服务,以便在系统启动时自动运行。下面是配置 systemd 的示例(适用于大多数 Linux 发行版):
- 创建 MinIO 的服务文件:
sudo nano /etc/systemd/system/minio.service
- 添加以下内容(请根据实际路径和配置修改):
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
[Service]
User=minio-user
Group=minio-user
ExecStart=/usr/local/bin/minio server /data --console-address ":9001"
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
⚠️ 注意:请确保你已经创建了
minio-user
用户,并拥有访问/data
的权限。你也需要将/usr/local/bin/minio
替换为你实际的 MinIO 可执行文件路径。
- 重新加载 systemd 并启动服务:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio
- 检查服务状态:
sudo systemctl status minio
启动 MinIO 服务(Start MinIO)
MinIO 可以直接通过命令行启动:
minio server /data
你也可以使用更高级的参数进行启动,例如指定控制台端口:
minio server /data --console-address ":9001"
运行后,你可以通过以下方式访问:
- API 接口:
http://127.0.0.1:9000
- 控制台界面:
http://127.0.0.1:9001
下一步建议(Next Steps)
完成基本安装后,你可以继续以下操作来深入使用 MinIO: