Docker: 无法访问 Minio Web 浏览器
Docker: Unable to access Minio Web Browser
我无法访问 Minio 嵌入式基于 Web 的对象浏览器。 http://127.0.0.1:9000
和 http://127.0.0.1:45423
地址立即显示“此页面不工作。ERR_INVALID_HTTP_RESPONSE
”。
http://172.22.0.8:9000
和 http://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 和 运行 pwd
和 ls
登录到 docker 容器会分别导致:minio-image/storage
和 airflow-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.yml
的 ports
部分发布此端口。
这给了我们:
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
凭据。
我无法访问 Minio 嵌入式基于 Web 的对象浏览器。 http://127.0.0.1:9000
和 http://127.0.0.1:45423
地址立即显示“此页面不工作。ERR_INVALID_HTTP_RESPONSE
”。
http://172.22.0.8:9000
和 http://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 和 运行 pwd
和 ls
登录到 docker 容器会分别导致:minio-image/storage
和 airflow-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.yml
的ports
部分发布此端口。
这给了我们:
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
凭据。