gpt4 book ai didi

python - 无法访问在 Docker 容器内运行的 Flask Web 应用程序

转载 作者:行者123 更新时间:2023-12-01 04:38:04 25 4
gpt4 key购买 nike

我有以下Dockerfile我在其中构建了一个包含 ElasticSearch 的 docker 镜像。 , Kibana4gunicorn

# gunicorn-flask                                                                                                                                                                               
FROM devdb/kibana

MAINTAINER KS <k.s@gmail.com>

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update
RUN apt-get install -y python python-pip python-virtualenv gunicorn
RUN pip install -U pip

# Setup flask application
RUN mkdir -p /deploy/app

COPY gunicorn_config.py /deploy/gunicorn_config.py
COPY app /deploy/app
COPY run_gunicorn /etc/service/gunicorn

RUN pip install -r /deploy/app/requirements.txt

WORKDIR /deploy/app

EXPOSE 5000

python Flask应用程序和 requirements.txt其中包含依赖项位于名为 app 的文件夹中与 Dockerfile 位于同一路径中.

我还有两个文件gunicorn_config.pyrun_gunicorn在同一路径中。

gunicorn_config.py 的内容如下所示。

    bind = "0.0.0.0:5000"
workers = 2

run_gunicorn的内容如下所示。

    #!/bin/bash
cd /deploy/app

我使用构建 Docker 镜像

sudo docker build --rm -t es-kibana-gunicorn:test-10-07-15 .

我使用将图像保存到 tar 文件

docker save 45a61ddf8d7e > es-kb-gunicorn-13-07-15.tar

哪里45a61ddf8d7e是图像 ID。

我将其复制到另一台服务器,然后加载图像并运行容器。

CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                                                              NAMES
d62a16fcc398 45a61ddf8d7e:latest "/sbin/my_init" 7 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp, 0.0.0.0:5601->5601/tcp, 0.0.0.0:9200->9200/tcp, 9300/tcp determined_shockley

关于 port 5000它看起来确实像我的Flask web application由gunicorn启动正在监听。

如果我尝试做 POST对于该网络服务器,我收到以下错误。

Traceback (most recent call last):
File "update_txid.py", line 27, in <module>
r = requests.post("http://192.168.132.125:5000", data=json_data,headers=headers)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 108, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 464, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 415, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(111, 'Connection refused'))

如果有人能帮助我找出问题所在,那就太好了。我可以访问端口 5601 Kibana4和端口 9200 'ElasticSearch`

最佳答案

我遇到了同样的问题,并尝试了艾伦的解决方法,但不知何故,VBoxManage 命令对我来说失败了。

我终于找到了this one哪个有效:

VBoxManage controlvm boot2docker-vm natpf1“rule_name,tcp,127.0.0.1,5000,,5000”

关于python - 无法访问在 Docker 容器内运行的 Flask Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com