Docker: 无法访问 Minio Web 浏览器

Docker: Unable to access Minio Web Browser

我无法访问 Minio 嵌入式基于 Web 的对象浏览器。 http://127.0.0.1:9000http://127.0.0.1:45423 地址立即显示“此页面不工作。ERR_INVALID_HTTP_RESPONSE”。

http://172.22.0.8:9000http://172.22.0.8:45423 地址将加载直到超时并出现“此页面无法正常工作。ERR_EMPTY_RESPONSE

我的 Docker 设置中是否遗漏了什么?

docker-compose.yml:

version: "3.7"
services:
    minio-image:
        container_name: minio-image
        build:
            context: ./dockerfiles/dockerfile_minio
        restart: always
        working_dir: "/minio-image/storage"
        volumes:
            - ./Storage/minio/storage:/minio-image/storage
        ports:
            - "9000:9000"
        environment:
            MINIO_ROOT_USER: minio-image
            MINIO_ROOT_PASSWORD: minio-image-pass
        command: server /minio-image/storage

Dockerfile

FROM minio/minio:latest

CMD wget https://dl.min.io/client/mc/release/linux-amd64/mc && \
    chmod +x mc 

来自 minio-image 容器日志:

API: http://172.22.0.8:9000  http://127.0.0.1:9000 


Console: http://172.22.0.8:45423 http://127.0.0.1:45423 


Documentation: https://docs.min.io


WARNING: Console endpoint is listening on a dynamic port (45423), please use --console-address ":PORT" to choose a static port.

通过 cli 和 运行 pwdls 登录到 docker 容器会分别导致:minio-image/storageairflow-files mlflow-models model-support-files

我在这里看到了一些问题。

首先,您只发布端口 9000,即 S3 API 端口。如果我运行 你的docker-compose.yml,访问端口 9000 就可以了;在 Docker 主机上,我可以 运行 curl http://localhost:9000 并得到:

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Resource>/</Resource><RequestId>16A25441E50432A4</RequestId><HostId>b1eed50d-9218-488a-9df6-fe008e758b27</HostId></Error>

...这是预期的,因为我没有提供任何凭据。

如果你想访问控制台,你需要做两件事:

  • 根据日志消息的指示,您需要使用 --console-address 设置静态控制台端口。
  • 您需要在 docker-compose.ymlports 部分发布此端口。

这给了我们:

version: "3.7"
services:
    minio-image:
        container_name: minio-image
        build:
            context: ./dockerfiles/dockerfile_minio
        restart: always
        working_dir: "/minio-image/storage"
        volumes:
            - ./Storage/minio/storage:/minio-image/storage
        ports:
            - "9000:9000"
            - "9001:9001"
        environment:
            MINIO_ROOT_USER: minio-image
            MINIO_ROOT_PASSWORD: minio-image-pass
        command: server /minio-image/storage --console-address :9001

运行以上docker-compose.yml,我可以访问MinIO控制台 在 http://localhost:9001,并使用 minio-image/minio-image-pass 凭据。