自学内容网 自学内容网

使用容器技术快速入门MinIO

使用容器技术快速入门MinIO

使用容器技术(docker或者podman)快速部署一个单节点单磁盘 MinIO 服务器,用于对MinIO对象存储及其兼容 S3 的 API 层进行早期的开发和评估。

1. 准备工作

  1. 机器已经安装了 Podman 或者 Docker 。

  2. 对用于持久卷的文件夹或驱动器具有读取、写入和删除权限。

2. 容器部署操作步骤

选择一个容器类型以查看创建容器的指南。 提供了适用于 GNU/Linux 和 MacOS,或适用于 Windows 的指南。

2.1 podman部署

使用podman部署,下面步骤适用于rootfull和rootless的容器。

linux/macos:

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"

windows:

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 时,该数据会镜像到本地路径 ~/minio/data , 使其能够在容器重新启动时保持持久化。 您可以设置任何具有读取、写入和删除权限的文件路径来使用。

  • -e 分别为用户名和密码设置环境变量 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD。如果变量未设置,minio 将默认使用 minioadmin 作为访问密钥,以及 minioadmin 作为秘密密钥。

2.2 docker部署

使用docker部署minio,包括部署rootfull或者rootless类型的容器。

rootfull方式部署
  1. linux或macos
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"
  1. windows
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 启动运行容器。

  • -p 为容器绑定一个本地的端口.

  • -name 为容器创建一个本地的名字。

  • -v 将文件路径设置为容器使用的持久卷位置。 当MinIO将数据写入 /data 时,该数据会镜像到本地路径 ~/minio/data , 使其能够在容器重新启动时保持持久化。 您可以设置任何具有读取、写入和删除权限的文件路径来使用。

  • -e 分别为用户名和密码设置环境变量 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD。

rootless方式部署
  1. linux/macos
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"
  1. windows
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"

备注

windows下运行前提:Windows Group Managed Service Account(gMSA)已经定义。

上面的示例以以下方式工作:

  • docker run 启动运行容器。

  • -p 为容器绑定一个本地的端口.

  • -name 为容器创建一个本地的名字。

  • --security-opt :windows下运行需要配置。授予通过 credentialspec 文件访问容器的权限,用于 组管理服务帐户 (gMSA)

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

  • -e 分别为用户名和密码设置环境变量 MINIO_ROOT_USERMINIO_ROOT_PASSWORD

3. 通过浏览器访问MinIO服务器

启动MinIO服务器后,命令行会生成两个链接地址,例如:Console: http://192.0.2.10:9001 http://127.0.0.1:9001 输出的两个地址,是系统自动根据本地IP生成的地址,这两个地都在没有防火墙和安全策略的情况下都有可能能访问到MinIO控制台。通过docker容器所在的节点+端口即可访问控制台。

监听的 9000 端口主要用于通过API连接时的访问, 当通过浏览器访问 9000 端口时浏览器会自动跳转至控制台。

MinIO Console控制台的登录凭据(用户名和密码)默认认置的环境变量通过 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 修改。

4. FAQ

  1. Centos7 x86机器下运行minio容器(镜像版本:RELEASE.2024-09-13T20-26-02Z)提示“Fatal glibc error: CPU does not support x86-64-v2”。

原因:Docker 镜像中的 glibc 版本要求 CPU 支持 x86-64-v2 指令集,而你的硬件不支持。

参考:https://github.com/minio/minio/issues/18365

解决:降低minio版本,降低为RELEASE.2023-10-25T06-33-25Z或者更低。

5. 参考资料

  1. https://www.minio.org.cn/docs/minio/container/index.html
  2. https://www.minio.org.cn/docs/minio/container/administration/identity-access-management/minio-user-management.html#minio-users-root
  3. https://learn.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/manage-serviceaccounts

原文地址:https://blog.csdn.net/codelearning/article/details/142288962

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!