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

dced5bon  于 2023-02-28  发布在  Python
关注(0)|答案(4)|浏览(155)

我已经成功地构建并启动了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 File
创建容器

# 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>

output
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
velaa5lx

velaa5lx1#

fastapi容器也有同样的问题
确保您的应用正在侦听容器中的0.0.0.0

f45qwnt8

f45qwnt82#

只需在main.ts中添加以下内容,您将在其中监听端口:

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

添加'0.0.0.0',它应该工作。

n3schb8v

n3schb8v3#

尝试本地主机:6001不是互联网地址
您还可以尝试任何系统本地ipaddress,如果您分别使用linux或windows,则可以通过键入ifconfig或ipconfig来查找ipaddress

p1iqtdky

p1iqtdky4#

容器内部的fast-API服务器也存在同样的问题:
要修复让fast-API服务器bi运行在主机=”0.0.0.0“上,当您使用uvicorn.run方法时,因为默认情况下将使用主机“127.0.0.1“。
对我来说,这很管用:
uvicorn.run(self, host="0.0.0.0", port=port)

相关问题