gpt4 book ai didi

docker - 从主机访问在 docker 上运行的服务器

转载 作者:行者123 更新时间:2023-12-02 21:32:11 24 4
gpt4 key购买 nike

我有一个在 docker 容器上运行的 rest api 服务器。服务器在 docker 容器的 8000 端口上运行,主机的 8081 端口绑定(bind)到容器的 8000 端口。通过连接容器并执行 curl localhost:8000,我可以看到容器内的其余 api 服务器运行正常。通过执行 docker inspect 我可以看到端口绑定(bind)符合预期。但是,当我从主机 PC 浏览 localhost:8081 时,我收到 ERR_CONNECTION_REFUSED 错误。以下是我的一些 docker 设置和日志。有想法该怎么解决这个吗?

# Docker compose File
version: "3"
services:
genie:
network_mode: host
build:
context: app
dockerfile: Dockerfile
restart: unless-stopped
ports:
- "8081:8000"
env_file:
- ./.env
volumes:
- ./app:/home/genie/app
entrypoint:
- bin/server
# Docker inpsect result on the running container
"PortBindings": {
"8000/tcp": [
{
"HostIp": "",
"HostPort": "8081"
}
]
},

最佳答案

需要将容器内的应用程序配置为监听所有接口(interface),而不仅仅是 localhost。 Docker 网络是命名空间的,因此只有容器内的进程可以访问 localhost,就像与您的笔记本电脑处于同一网络中的其他机器无法访问您笔记本电脑上仅在 localhost 上监听的应用程序一样。
此更改是特定于应用程序的,我们在此问题中没有详细信息。但是,如果它配置为 127.0.0.1,您可以将其更改为 0.0.0.0。

关于docker - 从主机访问在 docker 上运行的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64200251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com