首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头港口暴露问题

码头港口暴露问题
EN

Stack Overflow用户
提问于 2019-11-25 20:05:44
回答 2查看 902关注 0票数 0

我有一个烧瓶应用程序,我正在尝试进行对接,但是端口没有被正确地公开。

DockerFile

代码语言:javascript
复制
FROM tiangolo/uwsgi-nginx-flask:python3.7

LABEL Name=testAPP Version=0.0.1
EXPOSE 5000

ADD . /app
WORKDIR /app

# Using pip:
RUN python3 -m pip install -r requirements.txt

ENTRYPOINT [ "python3" ]
CMD ["application.py" ,"runserver","-h 0.0.0.0"]

Docker构建是成功的:

代码语言:javascript
复制
docker build --rm -f "Dockerfile" -t testAPP .

Docker Run正在成功地构建映像。

代码语言:javascript
复制
docker run -device -expose 5000:5000 testAPP

也试过了,

代码语言:javascript
复制
docker run --rm -d -p 443:443/tcp -p 5000:5000/tcp -p 80:80/tcp testAPP

但是当我试图访问这个站点时,它会抛出一个错误。

无法到达站点错误

烧瓶应用程序(应用程序内部)

代码语言:javascript
复制
if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5000)

执行命令时

代码语言:javascript
复制
Docker container ps

CONTAINER ID     IMAGE        COMMAND      CREATED          STATUS    PORTS      NAMES
 8724cdb38e14    testAPP   "/entrypoint.sh pyth…" 15 seconds ago   Up 13 seconds    80/tcp, 443/tcp, 0.0.0.0:5000->5000/tcp  funny_galois
EN

回答 2

Stack Overflow用户

发布于 2019-11-25 20:24:11

将端口定义为已公开的端口本身并不会发布端口。尝试使用标志-p,例如:

-p container_port:local_port

示例:

代码语言:javascript
复制
docker run -p 8080:8080 -v ~/Code/PYTHON/ttftt-recipes-manager:/app python_dev

但是,在运行之前,请尝试检查在指定端口上是否有其他已经运行的东西,例如:

代码语言:javascript
复制
lsof -i :PORTNUM 

之后是这样的:

代码语言:javascript
复制
docker logs my_container
票数 0
EN

Stack Overflow用户

发布于 2019-11-25 21:58:57

确保将本地主机端口映射到容器端口

码头运行-p 127.0.0.1:8000:8000 your_image

一旦应用程序在容器中,您希望在主机设置为0.0.0.0的情况下运行应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59039337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档