Docker 是一款划时代的容器化技术,在使用它的时候,我们会经常需要构建一个自己的 Docker 镜像,下面,我将详细讲解在 Docker 中如何构建一个 Python Flask 镜像。
1. 准备工作:
首先,我们需要在本地安装 Docker 和 Python 环境,如果你的电脑上没有安装,建议使用 Docker Desktop,和官方 Python 环境。
2. 在目录下创建一个 Dockerfile:
# 指定基于的镜像
FROM python:3.8-slim-buster
# 指定工作路径为 /app
WORKDIR /app
# 复制当前目录下的文件到工作目录中
COPY . /app
# 使用 pip 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 指定暴露端口为 5000
EXPOSE 5000
# 定义启动命令
CMD ["python", "app.py"]
以上代码分别做了以下四步:
-
首先使用了 Python 3.8 的镜像作为我们构建镜像的基础镜像。
-
然后指定了工作路径为 /app,也就是我们工作的目录路径。
-
接下来使用了 COPY 命令将当前目录下的文件复制到容器的 /app 目录下。这里和一般的复制文件不同的是,Docker 使用了分层的存储机制来减少资源的消耗。
-
使用 RUN 命令来执行 pip 安装我们需要的依赖包,--no-cache-dir 选项可避免在 Docker 中因为缓存问题而占用过多资源。
-
最后,使用 EXPOSE 命令指定了 Flask 应用所监听的端口。CMD 命令指定了启动 Flask 应用的命令。
3. 通过 Dockerfile 构建镜像:
在终端或命令行中输入以下命令,即可开始构建镜像:
docker build -t flask-demo:v1 .
命令中需要注意的部分为 -t 参数,这里我们给镜像命名为 flask-demo:v1,代表着我们正在构建的镜像为一个 Flask Demo 的镜像,版本为 v1。
4. 运行容器:
成功构建完镜像后,我们可以使用以下命令来启动容器:
docker run -it -p 5000:5000 flask-demo:v1
其中 -p 参数用于将容器的端口 5000 映射到本地的 5000 端口上。
以上就是 Docker 构建 Python Flask 镜像的完整攻略,下面我为你提供两个示例以方便更好地理解。
示例1. Flask 应用示例
在当前工作目录下,创建一个名为 app.py 的文件,并输入以下代码:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello Flask!"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
这里我们使用 Flask 搭建了一个非常简单的应用,实现了一个返回 "Hello Flask!" 的接口。
示例2. requirements.txt 示例
在当前工作目录下,创建一个名为 requirements.txt 的文件,并输入以下代码:
Flask==1.1.2
这里我们列出我们运行 Flask 应用所需的依赖包,这些依赖将在 Dockerfile 中作为参数使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Dockerfile构建一个Python Flask 镜像 - Python技术站