无法访问docker容器套接字挂起错误



我已经成功构建并启动了docker容器,它运行得很好,但当我尝试访问它[End point url 0.0.0.0:6001]时,我得到了一个"插座挂断";错误

GET http://0.0.0.0:6001/
Error: socket hang up
Request Headers
User-Agent: PostmanRuntime/7.26.8
Accept: */*
Postman-Token: <token>
Host: 0.0.0.0:6001
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

早些时候它工作得很好,但当我删除容器和图像并重建它时,我开始得到这个错误

我正在使用Postman进行GET请求,我还尝试了Web浏览器

有人能告诉我出了什么问题吗

-更新--

Docker文件

创建容器

# Create Virtual Network
$ sudo docker network create network1 
# Using custom network as there are multiple containers 
# which communicate with each other
# Create Containers
$ sudo docker build -t form_ocr:latest .
$ sudo docker run -d -p 6001:5000 --net network1 --name form_ocr form_ocr

netstat命令输出

$ netstat -nltp 
...
tcp6       0      0 :::6001                 :::*                    LISTEN      -  

docker container inspect输出

$ sudo docker container inspect <container-id>

输出

docker ps输出

$ sudo docker ps
CONTAINER ID        IMAGE        COMMAND             CREATED        STATUS           PORTS                    NAMES
835e8cb11eee        form_ocr     "python3 app.py"    16 hours ago   Up 40 seconds    0.0.0.0:6001->5000/tcp   form_ocr

我在使用fastapi容器时遇到了同样的问题

确保您的应用程序正在侦听容器中的0.0.0.0

只需将其添加到main.ts中,即可监听端口:

await app.listen(6001, '0.0.0.0', () => console.log(`Listening on port: 6000`));

加上"0.0.0.0",它应该可以工作。

尝试localhost:6001而不是互联网地址

您也可以尝试您的任何系统本地ipaddress,如果您分别在linux或windows 中,您可以通过键入ifconfig或ipconfig找到ipaddress

容器内的快速API服务器也存在相同的问题:

为了修复让快速API服务器bi在主机上运行=";0.0.0.0";,当使用CCD_ 7方法时;127.0.0.1";将被使用。

对我来说,这很有效:

uvicorn.run(self, host="0.0.0.0", port=port)

最新更新