我已经成功构建并启动了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)