【问题标题】:Docker: Unable to access Minio Web BrowserDocker:无法访问 Minio Web 浏览器
【发布时间】:2021-09-06 19:42:16
【问题描述】:

我无法访问基于 Web 的 Minio 嵌入式对象浏览器。 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 登录 docker 容器并运行 pwdls 分别导致:minio-image/storageairflow-files mlflow-models model-support-files

【问题讨论】:

    标签: docker minio


    【解决方案1】:

    我发现这里有一些问题。

    首先,您只发布端口 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 凭据。

    【讨论】:

    • 谢谢!这行得通。也有扎实的解释。跟进问题。这意味着访问文件等的api访问仍然在端口9000上正确吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 2014-05-14
    • 2019-05-04
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    相关资源
    最近更新 更多