我有一个烧瓶应用程序,我正在尝试进行对接,但是端口没有被正确地公开。
DockerFile
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构建是成功的:
docker build --rm -f "Dockerfile" -t testAPP .Docker Run正在成功地构建映像。
docker run -device -expose 5000:5000 testAPP也试过了,
docker run --rm -d -p 443:443/tcp -p 5000:5000/tcp -p 80:80/tcp testAPP但是当我试图访问这个站点时,它会抛出一个错误。
烧瓶应用程序(应用程序内部)
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)执行命令时
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发布于 2019-11-25 20:24:11
将端口定义为已公开的端口本身并不会发布端口。尝试使用标志-p,例如:
-p container_port:local_port
示例:
docker run -p 8080:8080 -v ~/Code/PYTHON/ttftt-recipes-manager:/app python_dev但是,在运行之前,请尝试检查在指定端口上是否有其他已经运行的东西,例如:
lsof -i :PORTNUM 之后是这样的:
docker logs my_container发布于 2019-11-25 21:58:57
确保将本地主机端口映射到容器端口
码头运行-p 127.0.0.1:8000:8000 your_image
一旦应用程序在容器中,您希望在主机设置为0.0.0.0的情况下运行应用程序。
https://stackoverflow.com/questions/59039337
复制相似问题