【问题标题】:Issues accessing to a Docker container访问 Docker 容器的问题
【发布时间】:2019-01-09 09:43:25
【问题描述】:

我有一个 Flask 服务器在 8090 端口上运行

...code of the Flask server...
app.run(host='0.0.0.0', port=8090, debug=True)

然后我的 Dockerfile 如下:

FROM ubuntu
WORKDIR home

MAINTAINER Califfo

# copy files into the image
ADD files /home/files
ADD ServerCategory.py /home
ADD requirements.txt /home

# install python3, pip and Flask
RUN apt-get update && apt-get install -y python3 python3-pip net-tools lsof && pip3 install -r requirements.txt

# launch flask server
RUN python3 ServerCategory.py flask run

当我使用此命令构建映像并运行容器时

docker build -t server_category . && docker run -p 8090:8090 -it --rm server_category

一切正常。

  • http://0.0.0.0:8090/ 上运行(按 CTRL+C 退出)
  • 使用 stat 重启
  • 调试器已激活!
  • 调试器 PIN:280-257-458

但我无法从浏览器连接到服务器,例如使用 localhost:8090/。 我收到此错误

Error: Couldn't connect to server

【问题讨论】:

  • 它是否在容器内工作?试试docker exec <container-name> wget http://localhost:8090
  • 您的 Dockerfile 中没有声明 entrypointcmd。当您启动容器时,它会立即关闭。将上一个 RUN 命令更改为 CMD python3 ServerCategory.py flask run 并重试。
  • @nauer 您应该考虑将此评论作为更详细的答案:)

标签: python-3.x docker flask


【解决方案1】:

正如 nauer 在 cmets 中所说,问题之一是您在 Dockerfile 上没有任何 ENTRYPOINT 或 CMD 命令。因此,每当您启动容器时,他都会立即关闭。使用 docker run 命令,容器仍然存在,因为您使用 -it 标志打开 bash,但这不是最佳方法。

对于“错误:无法连接到服务器”问题,您需要提供更多信息,因为问题似乎出在烧瓶而不是 docker 本身。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2018-04-28
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    相关资源
    最近更新 更多