文档

MinIO 对象存储 for Container

MinIO 是一种对象存储解决方案,提供与 Amazon Web Services S3 兼容的 API,并支持所有核心 S3 功能。MinIO 构建用于在任何地方部署 - 公有云或私有云、裸机基础设施、编排环境和边缘基础设施。

本网站记录了在容器上部署 MinIO 的操作、管理和开发,适用于 MinIO 的最新稳定版本: RELEASE.2024-10-29T16-01-48Z.

MinIO 在双重许可下发布 GNU Affero 通用公共许可证 v3.0MinIO 商业许可证。通过 MinIO SUBNET 注册的部署使用商业许可证,并包含访问 24/7 MinIO 支持。

您可以使用 MinIO 控制台 和我们在 https://play.min.io 上的 play 服务器开始探索 MinIO 功能。play 是一个运行最新稳定版 MinIO 服务器的公共 MinIO 集群。上传到 play 的任何文件都应被视为公共且不受保护的。有关连接到 play 的更多信息,请参阅 MinIO 控制台 play 登录

容器快速入门

此过程将 单节点单驱动器 MinIO 服务器部署到 Docker 或 Podman 上,用于 MinIO 对象存储及其 S3 兼容 API 层的早期开发和评估。

有关部署到生产环境的说明,请参阅 部署 MinIO:多节点多驱动器

先决条件

  • PodmanDocker 已安装。

  • 对用于持久卷的文件夹或驱动器具有读、写和删除访问权限。

步骤

  1. 启动容器

    选择容器类型以查看创建容器的说明。说明适用于 GNU/Linux 和 MacOS 或 Windows。

    Podman(Rootfull 或 Rootless)

    这些步骤适用于 rootfull 和 rootless 容器。

    mkdir -p ~/minio/data
    
    podman run \
       -p 9000:9000 \
       -p 9001:9001 \
       -v ~/minio/data:/data \
       -e "MINIO_ROOT_USER=ROOTNAME" \
       -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
       quay.io/minio/minio server /data --console-address ":9001"
    

    上面的示例按这种方式工作

    • podman run 启动容器。该进程附加到终端会话,并在退出终端时结束。

    • -p 将本地端口绑定到容器端口。

    • -v 将文件路径设置为容器使用的持久卷位置。当 MinIO 将数据写入 /data 时,该数据会镜像到本地路径 ~/minio/data,允许它在容器重启之间保持持久性。您可以设置用户具有读、写和删除权限的任何文件路径以供使用。

    • -e 设置环境变量 MINIO_ROOT_USERMINIO_ROOT_PASSWORD。这些分别设置 root 用户凭据。更改示例值以用于您的容器。

    podman run \
       -p 9000:9000 \
       -p 9001:9001 \
       -v D:\minio\data:/data \
       -e "MINIO_ROOT_USER=ROOTNAME" \
       -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
       quay.io/minio/minio server /data --console-address ":9001"
    

    上面的示例按这种方式工作

    • podman run 启动容器。

    • -p 将本地端口绑定到容器端口。

    • -v 用于设置文件路径作为容器使用的持久化卷位置。当 MinIO 将数据写入 /data 时,这些数据会镜像到本地路径 D:\minio\data,使其能够在容器重启之间持久化。您可以设置任何用户具有读、写和删除权限的文件路径来使用。

    • -e 设置环境变量 MINIO_ROOT_USERMINIO_ROOT_PASSWORD。这些分别设置 root 用户凭据。更改示例值以用于您的容器。

    Docker (Rootfull)
    mkdir -p ~/minio/data
    
    docker run \
       -p 9000:9000 \
       -p 9001:9001 \
       --name minio \
       -v ~/minio/data:/data \
       -e "MINIO_ROOT_USER=ROOTNAME" \
       -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
       quay.io/minio/minio server /data --console-address ":9001"
    

    上面的示例按这种方式工作

    • mkdir 在您的主目录中创建名为 ~/minio/data 的新本地目录。

    • docker run 启动 MinIO 容器。

    • -p 将本地端口绑定到容器端口。

    • -name 为容器创建名称。

    • -v 用于设置文件路径作为容器使用的持久化卷位置。当 MinIO 将数据写入 /data 时,这些数据会镜像到本地路径 ~/minio/data,使其能够在容器重启之间持久化。您可以将 ~/minio/data 替换为另一个用户具有读、写和删除权限的本地文件位置。

    • -e 设置环境变量 MINIO_ROOT_USERMINIO_ROOT_PASSWORD。这些分别设置 root 用户凭据。更改示例值以用于您的容器。

    docker run \
       -p 9000:9000 \
       -p 9001:9001 \
       --name minio1 \
       -v D:\minio\data:/data \
       -e "MINIO_ROOT_USER=ROOTUSER" \
       -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
       quay.io/minio/minio server /data --console-address ":9001"
    

    上面的示例按这种方式工作

    • docker run 启动 MinIO 容器。

    • -p 将本地端口绑定到容器端口。

    • -v 用于设置文件路径作为容器使用的持久化卷位置。当 MinIO 将数据写入 /data 时,这些数据会镜像到本地路径 D:\minio\data,使其能够在容器重启之间持久化。您可以将 D:\minio\data 替换为另一个用户具有读、写和删除权限的本地文件位置。

    • -e 设置环境变量 MINIO_ROOT_USERMINIO_ROOT_PASSWORD。这些分别设置 root 用户凭据。更改示例值以用于您的容器。

    Docker (Rootless)
    mkdir -p ${HOME}/minio/data
    
    docker run \
       -p 9000:9000 \
       -p 9001:9001 \
       --user $(id -u):$(id -g) \
       --name minio1 \
       -e "MINIO_ROOT_USER=ROOTUSER" \
       -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
       -v ${HOME}/minio/data:/data \
       quay.io/minio/minio server /data --console-address ":9001"
    

    上面的示例按这种方式工作

    • mkdir 在您的主目录中创建名为 ~/minio/data 的新本地目录。

    • docker run 启动 MinIO 容器。

    • -p 将本地端口绑定到容器端口。

    • -user 将容器的用户名设置为当前用户和用户组的策略。

    • -name 为容器创建名称。

    • -v 用于设置文件路径作为容器使用的持久化卷位置。当 MinIO 将数据写入 /data 时,这些数据实际上会写入本地路径 ~/minio/data,使其能够在容器重启之间持久化。您可以将 ${HOME}/minio/data 替换为用户主目录中的另一个用户具有读、写和删除权限的位置。

    • -e 设置环境变量 MINIO_ROOT_USERMINIO_ROOT_PASSWORD。这些分别设置 root 用户凭据。更改示例值以用于您的容器。

    先决条件

    docker run \
       -p 9000:9000 \
       -p 9001:9001 \
       --name minio1 \
       --security-opt "credentialspec=file://path/to/file.json"
       -e "MINIO_ROOT_USER=ROOTUSER" \
       -e "MINIO_ROOT_PASSWORD=CHANGEME123" \
       -v D:\data:/data \
       quay.io/minio/minio server /data --console-address ":9001"
    

    上面的示例按这种方式工作

    • docker run 启动 MinIO 容器。

    • -p 将本地端口绑定到容器端口。

    • -name 为容器创建名称。

    • --security-opt 通过 credentialspec 文件为 组托管服务帐户 (gMSA) 授予容器访问权限。

    • -v 用于设置文件路径作为容器使用的持久化卷位置。当 MinIO 将数据写入 /data 时,这些数据实际上会写入本地路径 D:\data,使其能够在容器重启之间持久化。您可以将 D:\data 替换为另一个用户具有读、写和删除权限的本地文件位置。

    • -e 设置环境变量 MINIO_ROOT_USERMINIO_ROOT_PASSWORD。这些分别设置 root 用户凭据。更改示例值以用于您的容器。

  2. 将您的浏览器连接到 MinIO 服务器

    通过访问浏览器并转到 http://127.0.0.1:9000minio server 命令输出中指定的控制台地址之一来访问 MinIO 控制台。例如,示例输出中的 控制台:http://192.0.2.10:9001 http://127.0.0.1:9001 指示了用于连接到控制台的两个可能的地址。

    虽然端口 9000 用于连接到 API,但 MinIO 会自动将浏览器访问重定向到 MinIO 控制台。

    使用您在 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 环境变量中定义的凭据登录控制台。

    MinIO Console displaying login screen

    您可以使用 MinIO 控制台执行一般管理任务,例如身份和访问管理、指标和日志监控或服务器配置。每个 MinIO 服务器都包含其自己的嵌入式 MinIO 控制台。

    MinIO Console displaying bucket start screen

    有关更多信息,请参阅 MinIO 控制台 文档。

  3. (可选) 安装 MinIO 客户端

    MinIO 客户端 允许您从命令行操作 MinIO 卷。

    选择您的操作系统以获取说明。

    GNU/Linux

    MinIO 客户端 允许您从命令行操作 MinIO 服务器。

    下载 mc 客户端并将其安装到系统 PATH 上的位置,例如 /usr/local/bin。或者,您可以从下载位置运行二进制文件。

    wget https://dl.min.io/client/mc/release/linux-amd64/mc
    chmod +x mc
    sudo mv mc /usr/local/bin/mc
    

    使用 mc alias set 创建与您的本地部署关联的新别名。您可以针对此别名运行 mc 命令。

    mc alias set local http://127.0.0.1:9000 {MINIO_ROOT_USER} {MINIO_ROOT_PASSWORD}
    mc admin info local
    

    {MINIO_ROOT_USER}{MINIO_ROOT_PASSWORD} 替换为使用 -e 标志为容器定义的凭据。

    mc alias set 接受四个参数。

    • 别名名称。

    • MinIO 服务器的主机名或 IP 地址和端口。

    • MinIO 用户 的访问密钥。

    • MinIO 用户 的密钥。

    有关此命令的更多详细信息,请参阅 mc alias set

    MacOS

    MinIO 客户端 允许您从命令行操作 MinIO 卷。

    运行以下命令,使用 Homebrew 安装最新的稳定 MinIO 客户端软件包。

    brew install minio/stable/mc
    

    运行以下命令,使用适用于 Apple 芯片的二进制软件包安装最新的稳定 MinIO 客户端软件包。

    curl -O https://dl.min.io/client/mc/release/darwin-arm64/mc
    chmod +x mc
    sudo mv mc /usr/local/bin/mc
    

    运行以下命令,使用适用于 Intel 芯片的二进制软件包安装最新的稳定 MinIO 客户端软件包。

    curl -O https://dl.min.io/client/mc/release/darwin-amd64/mc
    chmod +x mc
    sudo mv mc /usr/local/bin/mc
    

    使用 mc alias set 快速验证并连接到 MinIO 部署。

    mc alias set local http://127.0.0.1:9000 {MINIO_ROOT_USER} {MINIO_ROOT_PASSWORD}
    mc admin info local
    

    {MINIO_ROOT_USER}{MINIO_ROOT_PASSWORD} 替换为使用 -e 标志为容器定义的凭据。

    mc alias set 接受四个参数。

    • 别名名称。

    • MinIO 服务器的主机名或 IP 地址和端口。

    • MinIO 用户 的访问密钥。

    • MinIO 用户 的密钥。

    有关此命令的更多详细信息,请参阅 mc alias set

    Windows

    从以下链接下载适用于 Windows 的独立 MinIO 服务器。

    https://dl.min.io/client/mc/release/windows-amd64/mc.exe

    双击文件以运行它。或者,在命令提示符或 PowerShell 中运行以下命令。

    \path\to\mc.exe --help
    

    使用 mc alias set 快速验证并连接到 MinIO 部署。

    mc.exe alias set local http://127.0.0.1:9000 {MINIO_ROOT_USER} {MINIO_ROOT_PASSWORD}
    mc.exe admin info local
    

    {MINIO_ROOT_USER}{MINIO_ROOT_PASSWORD} 替换为使用 -e 标志为容器定义的凭据。

    mc alias set 接受四个参数。

    • 别名名称。

    • MinIO 服务器的主机名或 IP 地址和端口。

    • MinIO 用户 的访问密钥。

    • MinIO 用户 的密钥。

    有关此命令的更多详细信息,请参阅 mc alias set

后续步骤