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部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取