簡體   English   中英

docker端口暴露問題

[英]docker port exposing issue

我有一個正在嘗試 dockerize 的 Flask 應用程序,但端口沒有正確暴露。

文件

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 Build 成功:

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

但是當我嘗試訪問該站點時,它會引發錯誤

網站無法訪問錯誤

Flask App(APP內)

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

將端口定義為公開端口不會自行發布端口。 嘗試使用標志-p ,例如:

-p 容器端口:本地端口

例子:

docker run -p 8080:8080 -v ~/Code/PYTHON/ttftt-recipes-manager:/app python_dev

但是在運行之前嘗試檢查是否有其他東西已經在指定的端口上運行,例如:

lsof -i :PORTNUM 

之后是這樣的:

docker logs my_container

確保將本地主機端口映射到容器的端口

docker run -p 127.0.0.1:8000:8000 your_image

一旦你的應用程序在容器中,你想在主機設置為 0.0.0.0 的情況下運行你的應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM