Docker:无法访问Minio Web浏览器

4
我在访问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登录到docker容器并运行pwdls命令,结果分别为:minio-image/storageairflow-files mlflow-models model-support-files
1个回答

10
我在这里看到了几个问题。
首先,你只公开了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,我可以通过http://localhost:9001访问MinIO控制台,并使用minio-image/minio-image-pass凭据登录。


谢谢!这个方法有效。解释也很清晰。接下来有一个问题。这意味着访问文件等API的端口仍然是9000端口,对吗? - LeggoMaEggo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接