Minio docker容器化部署配置详情

qingtcloud-oss标准软件基于Bitnami minio 构建。当前版本为2024.2.26

连接容器

使用Docker 容器网络,应用程序容器可以轻松访问容器内运行的 MinIO® 服务器。

使用命令行

在此示例中,我们将创建一个MinIO® 客户端容器,该容器将连接到与客户端在同一 Docker 网络上运行的服务器容器。

第 1 步:创建网络
docker network create app-tier --driver bridge
步骤 2:启动 MinIO® 服务器容器

使用命令–network app-tier的参数docker run将 MinIO® 容器连接到网络app-tier。

docker run -d --name minio-server \
    --env MINIO_ROOT_USER="minio-root-user" \
    --env MINIO_ROOT_PASSWORD="minio-root-password" \
    --network app-tier \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest
步骤 3:启动您的 MinIO® 客户端容器

最后,我们创建一个新的容器实例来启动 MinIO® 客户端并连接到上一步中创建的服务器。在此示例中,我们在 MinIO® 存储服务器中创建一个新bucket:

docker run -it --rm --name minio-client \
    --env MINIO_SERVER_HOST="minio-server" \
    --env MINIO_SERVER_ACCESS_KEY="minio-access-key" \
    --env MINIO_SERVER_SECRET_KEY="minio-secret-key" \
    --network app-tier \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/minio-client \
    mb minio/my-bucket

使用 Docker Compose 文件

如果未指定,Docker Compose 会自动设置一个新网络并将所有已部署的服务附加到该网络。但是,我们将显式定义一个bridge名为app-tier的新网络。在此示例中,我们假设您希望从您自己的自定义应用程序映像连接到 MinIO® 服务器,该image在以下代码片段中通过服务名称myapp进行标识。

version: '2'

networks:
  app-tier:
    driver: bridge

services:
  minio:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest'
    ports:
      - '9000:9000'
      - '9001:9001'
    environment:
      - MINIO_ROOT_USER=minio-root-user
      - MINIO_ROOT_PASSWORD=minio-root-password
    networks:
      - app-tier
  myapp:
    image: 'YOUR_APPLICATION_IMAGE'
    networks:
      - app-tier
    environment:
      - MINIO_SERVER_ACCESS_KEY=minio-access-key
      - MINIO_SERVER_SECRET_KEY=minio-secret-key

重要

替换YOUR_APPLICATION_IMAGE占位符
在您的应用程序容器中,使用主机名minio连接到 MinIO® 服务器。使用环境变量MINIO_SERVER_ACCESS_KEY并MINIO_SERVER_SECRET_KEY配置凭据以访问 MinIO® 服务器。
确保环境变量MINIO_ROOT_PASSWORD满足MINIO_SERVER_SECRET_KEYMinIO® 强制执行的 8 个字符最小长度要求。

启动容器:

docker-compose up -d

配置

MiNIO 可以通过环境变量进行配置,详细信息请参阅MinIO® 文档。

环境变量

定制的环境变量
Name Description Default Value
MINIO_DATA_DIR MinIO 数据目录。 /bitnami/minio/data
MINIO_DATA_DIR MinIO 数据目录。 /bitnami/minio/data
MINIO_API_PORT_NUMBER MinIO API 端口号 9000
MINIO_API_PORT_NUMBER MinIO API 端口号 9080
MINIO_CONSOLE_PORT_NUMBER MinIO API 端口号 9001
MINIO_SCHEME MinIO web scheme. http
MINIO_SKIP_CLIENT 跳过 MinIO 客户端配置。 no
MINIO_DISTRIBUTED_MODE_ENABLED 启用 MinIO 分布式模式。 no
MINIO_STARTUP_TIMEOUT MinIO 启动超时。 10
MINIO_SERVER_URL MinIO 服务器外部 URL。 $MINIO_SCHEME://localhost:$MINIO_API_PORT_NUMBER
MINIO_APACHE_CONSOLE_HTTP_PORT_NUMBER MinIO 控制台 UI HTTP 端口,通过 Apache 公开,具有基本身份验证。 80
MINIO_APACHE_CONSOLE_HTTPS_PORT_NUMBER MinIO 控制台 UI HTTPS 端口,通过 Apache 公开,具有基本身份验证。 443
MINIO_APACHE_API_HTTP_PORT_NUMBER MinIO API HTTP 端口,通过 Apache 公开,具有基本身份验证。 9000
MINIO_APACHE_API_HTTPS_PORT_NUMBER MinIO API HTTPS 端口,通过 Apache 公开,具有基本身份验证。 9443
MINIO_FORCE_NEW_KEYS 强制重新创建 MinIO 密钥。 no
MINIO_ROOT_USER MinIO root 用户名。 minio
MINIO_ROOT_PASSWORD MinIO root 用户的密码。 miniosecret
只读环境变量
Name Description Value
MINIO_BASE_DIR MinIO 安装目录。 ${BITNAMI_ROOT_DIR}/minio
MINIO_BIN_DIR 二进制文件的 MinIO 目录。 ${MINIO_BASE_DIR}/bin
MINIO_CERTS_DIR TLS 证书的 MinIO 目录。 /certs
MINIO_LOGS_DIR 日志文件的 MinIO 目录。 ${MINIO_BASE_DIR}/log
MINIO_TMP_DIR 日志文件的 MinIO 目录。 ${MINIO_BASE_DIR}/tmp
MINIO_SECRETS_DIR 凭证的 MinIO 目录。 ${MINIO_BASE_DIR}/secrets
MINIO_LOG_FILE MinIO 日志文件。 ${MINIO_LOGS_DIR}/minio.log
MINIO_PID_FILE MinIO PID文件。 ${MINIO_TMP_DIR}/minio.pid
MINIO_DAEMON_USER MinIO 系统用户。 minio
MINIO_DAEMON_GROUP MinIO 系统组。 minio

此镜像中还附带了MinIO® 客户端 ( mc),可用于执行MinIO® 客户端文档中所述的管理任务。下面的例子中,客户端用于获取服务器信息:

docker run --name minio -d registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest
docker exec minio mc admin info local

或使用 Docker Compose 前提是你已经下载了完整的docker-compose.xml:

docker-compose up -d
docker-compose exec minio mc admin info local

创建默认存储桶

您可以在容器初始化期间通过设置环境变量在 MinIO® 服务器中创建一系列存储桶,MINIO_DEFAULT_BUCKETS如下所示(策略是可选的):

docker run --name minio \
    --publish 9000:9000 \
    --publish 9001:9001 \
    --env MINIO_DEFAULT_BUCKETS='my-first-bucket:policy,my-second-bucket' \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest

或者通过修改docker-compose.yml配置信息:

services:
  minio:
  ...
    environment:
      - MINIO_DEFAULT_BUCKETS=my-first-bucket:policy,my-second-bucket
  ...

使用 TLS 保护对 MinIO® 服务器的访问

您可以使用 TLS 保护对 MinIO® 服务器的访问,如MinIO® 文档中所述。

该映像期望将变量MINIO_SCHEME设置为https并将证书安装在该/certs目录中。您可以将密钥和证书文件放在本地目录中并将其挂载到容器中,如下所示:

docker run --name minio \
    --publish 9000:9000 \
    --publish 9001:9001 \
    --volume /path/to/certs:/certs \
    --env MINIO_SCHEME=https
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest

或者通过修改docker-compose.yml文件:

services:
  minio:
  ...
    environment:
    ...
      - MINIO_SCHEME=https
    ...
    volumes:
      - /path/to/certs:/certs
  ...

在分布式模式下设置 MinIO®

您可以在分布式模式下配置 MinIO® 以设置高可用性存储系统。为此,必须在每个节点上设置以下环境变量:

  • MINIO_DISTRIBUTED_MODE_ENABLED:将其设置为“yes”以启用分布式模式。
  • MINIO_DISTRIBUTED_NODES:MinIO® 节点主机列表。可用的分隔符为“ ”、“,”和“;”。
  • MINIO_ROOT_USER:MinIO® 服务器根用户。必须在每个节点上通用。
  • MINIO_ROOT_PASSWORD:MinIO® 服务器根密码。必须在每个节点上通用。
    您可以使用下面的 Docker Compose 创建 4 节点分布式 MinIO® 设置:
version: '2'

services:
  minio1:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest'
    environment:
      - MINIO_ROOT_USER=minio-root-user
      - MINIO_ROOT_PASSWORD=minio-root-password
      - MINIO_DISTRIBUTED_MODE_ENABLED=yes
      - MINIO_DISTRIBUTED_NODES=minio1,minio2,minio3,minio4
      - MINIO_SKIP_CLIENT=yes
  minio2:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest'
    environment:
      - MINIO_ROOT_USER=minio-root-user
      - MINIO_ROOT_PASSWORD=minio-root-password
      - MINIO_DISTRIBUTED_MODE_ENABLED=yes
      - MINIO_DISTRIBUTED_NODES=minio1,minio2,minio3,minio4
      - MINIO_SKIP_CLIENT=yes
  minio3:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest'
    environment:
      - MINIO_ROOT_USER=minio-root-user
      - MINIO_ROOT_PASSWORD=minio-root-password
      - MINIO_DISTRIBUTED_MODE_ENABLED=yes
      - MINIO_DISTRIBUTED_NODES=minio1,minio2,minio3,minio4
      - MINIO_SKIP_CLIENT=yes
  minio4:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest'
    environment:
      - MINIO_ROOT_USER=minio-root-user
      - MINIO_ROOT_PASSWORD=minio-root-password
      - MINIO_DISTRIBUTED_MODE_ENABLED=yes
      - MINIO_DISTRIBUTED_NODES=minio1,minio2,minio3,minio4
      - MINIO_SKIP_CLIENT=yes

MinIO® 还支持省略号语法 ( {1…n}) 来列出 MinIO® 节点主机,其中n是节点数。{1…m}此语法对于在每个 MinIO® 节点上使用多个驱动器 ( ) 也有效,其中n是每个节点的驱动器数量。您可以使用下面的 Docker Compose 创建 2 节点分布式 MinIO® 设置,每个节点有 2 个驱动器:

version: '2'
services:
  minio-0:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest'
    volumes:
      - 'minio_0_data_0:/bitnami/minio/data-0'
      - 'minio_0_data_1:/bitnami/minio/data-1'
    environment:
      - MINIO_ROOT_USER=minio
      - MINIO_ROOT_PASSWORD=miniosecret
      - MINIO_DISTRIBUTED_MODE_ENABLED=yes
      - MINIO_DISTRIBUTED_NODES=minio-{0...1}/bitnami/minio/data-{0...1}
  minio-1:
    image: 'registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest'
    volumes:
      - 'minio_1_data_0:/bitnami/minio/data-0'
      - 'minio_1_data_1:/bitnami/minio/data-1'
    environment:
      - MINIO_ROOT_USER=minio
      - MINIO_ROOT_PASSWORD=miniosecret
      - MINIO_DISTRIBUTED_MODE_ENABLED=yes
      - MINIO_DISTRIBUTED_NODES=minio-{0...1}/bitnami/minio/data-{0...1}
volumes:
  minio_0_data_0:
    driver: local
  minio_0_data_1:
    driver: local
  minio_1_data_0:
    driver: local
  minio_1_data_1:
    driver: local

在MinIO® 文档中查找有关分布式模式的更多信息。

在容器重新启动时重新配置密钥

MINIO_ROOT_USERMinIO® 在第一次初始化期间分别根据和环境变量配置访问密钥和密钥MINIO_ROOT_PASSWORD。

使用持久性时,MinIO® 将默认重用第一次初始化期间配置的数据,忽略这些环境变量上设置的任何值。MINIO_FORCE_NEW_KEYS您可以通过将环境变量设置为:来强制 MinIO® 根据环境变量重新配置密钥yes:

docker run --name minio \
    --publish 9000:9000 \
    --publish 9001:9001 \
    --env MINIO_FORCE_NEW_KEYS="yes" \
    --env MINIO_ROOT_USER="new-minio-root-user" \
    --env MINIO_ROOT_PASSWORD="new-minio-root-password" \
    --volume /path/to/minio-persistence:/bitnami/minio/data \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest

日志

docker logs minio

或使用 Docker Compose:

docker-compose logs minio

HTTP 日志跟踪

要启用 HTTP 日志跟踪,您可以设置环境变量MINIO_HTTP_TRACE以将日志重定向到特定文件,如MinIO® 文档中详述。

当将此环境变量设置为 时/opt/bitnami/minio/log/minio.log,日志将发送到stdout.

docker run --name minio \
    --publish 9000:9000 \
    --publish 9001:9001 \
    --env MINIO_HTTP_TRACE=/opt/bitnami/minio/log/minio.log \
    registry.cn-hangzhou.aliyuncs.com/qingcloudtech/qingcloud-oss:latest

或者通过修改docker-compose.yml文件:

services:
  minio:
  ...
    environment:
      - MINIO_HTTP_TRACE=/opt/bitnami/minio/log/minio.log
  ...

你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取

开源地址: https://gitee.com/qingplus/qingcloud-platform

QingHub Minio部署手册

相关推荐

  1. Minio docker容器部署配置详情

    2024-03-12 05:02:02       41 阅读
  2. 【Docker】Solr容器部署配置参数详情

    2024-03-12 05:02:02       45 阅读
  3. 【Docker】Kong 容器部署配置参数说明

    2024-03-12 05:02:02       41 阅读
  4. 容器部署

    2024-03-12 05:02:02       29 阅读
  5. (1)mysql容器部署

    2024-03-12 05:02:02       47 阅读
  6. 【Docker】apache 容器部署

    2024-03-12 05:02:02       49 阅读
  7. 【Docker】Nginx 容器部署

    2024-03-12 05:02:02       43 阅读
  8. 【Docker】Tensorflow 容器部署

    2024-03-12 05:02:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 05:02:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 05:02:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 05:02:02       82 阅读
  4. Python语言-面向对象

    2024-03-12 05:02:02       91 阅读

热门阅读

  1. 二叉树的层序遍历

    2024-03-12 05:02:02       42 阅读
  2. 服务器访问慢怎么办

    2024-03-12 05:02:02       38 阅读
  3. 【力扣100】198.打家劫舍

    2024-03-12 05:02:02       39 阅读
  4. springboot参数传递总结

    2024-03-12 05:02:02       35 阅读
  5. json 基本上面试题目比较常问

    2024-03-12 05:02:02       42 阅读
  6. 大数据笔记

    2024-03-12 05:02:02       34 阅读
  7. C 语言中 #define 预处理器指令

    2024-03-12 05:02:02       37 阅读
  8. oracle 19c数据库联机备份与恢复

    2024-03-12 05:02:02       43 阅读