[英]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.