无法连接到本地主机端口 5000:Docker 连接被拒绝

无法连接到本地主机端口 5000:Docker 连接被拒绝

我已经构建了我的小型 Python(flask) 应用程序。容器在这里 docker ps

CONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS              PORTS                NAMES
4146fd976547        identidock_identidock:latest   "/cmd.sh"           5 minutes ago       Up 5 minutes        9090/tcp, 9191/tcp   agitated_leakey

如果我尝试

curl localhost:5000
curl: (7) Failed to connect to localhost port 5000: Connection refused

我已经检查过 sudo netstat -an | grep -E "5000" unix 3 [ ] STREAM CONNECTED 25000

它不在 5000 上列出。带有端口的 yaml 行

  ports:
   - "5000:5000"

如果我执行我的容器

docker exec -it agitated_leakey /bin/bash
uwsgi@4146fd976547:/app$ netstat -ln
bash: netstat: command not found

我的 Dockerfile

RUN pip install Flask==0.10.1 uWSGI==2.0.8
WORKDIR /app
COPY app /app
COPY cmd.sh /

EXPOSE 9090 9191

为什么会发生这种情况?

答案1

另一个问题可能与模式有关。在发布部分,我必须mode明确设置为主机,然后一切正常:

docker service create --name registry --publish published=5000,target=5000,mode=host registry:2

答案2

从 docker ps 的输出来看,你的端口还没有暴露。

$ docker run -d -p 5000:5000 flask-sample-one

运行映射端口的容器,如果仍然遇到同样的问题,请 ssh 到容器并使用以下命令。

netstat -lntp | grep :5000

似乎容器中未安装 netstat。您可以运行yum install netstat来安装并检查。

指南将帮助您进行验证。docker ps最后检查输出。

相关内容