【发布时间】:2020-10-30 11:32:40
【问题描述】:
我的目标是通过 Dockerfile 创建映像,然后从该映像运行容器。
这是 Dockerfile:
FROM python:3-alpine
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 2000
CMD ["python", "app.py"]
这是 app.py:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "Hello, World!"
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0", port=5000)
我正在使用此命令构建映像:docker build -t flask:v1 .
并使用以下命令运行它:docker run -p 5000:2000 flask:v1
运行后,我在终端中得到了这个:
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 265-965-329
当我转到http://0.0.0.0:5000/时,浏览器返回我:
无法访问此网站
据我了解,在运行-p 5000:2000 时,5000 是主机端口,2000 是容器端口。
而Dockerfile 中的命令EXPOSE 正在暴露容器端口。
当我正确暴露容器端口并将其与主机端口 5000 绑定时,为什么会得到 This site can’t be reached?
【问题讨论】:
标签: docker dockerfile port