下面是在 Docker 上部署 Python 的 Flask 框架的教程。
环境准备
在进行 Docker 部署之前,需要先安装好 Docker。可以通过以下网址下载并安装对应的 Docker 版本:https://www.docker.com/products/docker-desktop
编写 Dockerfile
在本地项目目录下新建一个 Dockerfile 文件,并添加以下内容:
FROM python:3.8-slim-buster
# 设置工作目录
WORKDIR /app
# 复制 requirements.txt 到容器中
COPY requirements.txt .
# 安装所需的依赖
RUN pip install -r requirements.txt
# 复制其它文件到容器中
COPY . .
# 启动服务
CMD ["python", "app.py"]
上面的 Dockerfile 中,我们基于 Python 3.8 安装了所需的依赖,然后将本地项目目录下的所有文件复制到容器里,最后通过 CMD 命令启动 Flask 服务。其中,requirements.txt 是项目所需的所有 Python 包依赖。
构建镜像
在当前目录下执行以下命令,构建出镜像:
docker build -t my-flask-app .
其中,-t 参数指定镜像名称,后面的 . 表示 Dockerfile 在当前目录下。构建镜像需要花费一些时间,取决于所需依赖包大小。
运行容器
构建镜像完成后,可以使用以下命令来运行容器:
docker run -p 5000:5000 my-flask-app
其中,-p 参数指定容器和宿主机之间的端口映射关系。这里我们将容器内的 5000 端口映射到宿主机的 5000 端口。访问宿主机 IP 地址和端口号,即可查看 Flask 应用。
示例
以一个简单的 "Hello, World!" 应用为例,我们来演示如何在 Docker 上部署。
示例一
首先,在本地新建一个文件夹,通过命令行切换到该目录下,执行以下命令:
mkdir my-flask-app
cd my-flask-app
touch Dockerfile
接着,使用编辑器打开 Dockerfile 并将以下代码复制进去:
FROM python:3.8-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]
然后,构建镜像:
docker build -t my-flask-app .
运行容器:
docker run -p 5000:5000 my-flask-app
在浏览器访问:http://localhost:5000,将看到“Hello, World!”输出。
示例二
在示例一的基础上,还可以添加 Docker Compose 配置。
首先,在项目根目录下创建一个名为 docker-compose.yml 的文件,内容如下:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
environment:
FLASK_ENV: development
command: flask run --host=0.0.0.0
redis:
image: redis:alpine
然后,在终端中执行以下命令:
docker-compose up
相比于运行容器的方式,使用 Docker Compose 可以更方便地管理我们的服务,同时还可以实现多个容器间的交互。
在浏览器访问 http://localhost:5000,将看到“Hello, World!”输出。
以上是部署 Flask 应用到 Docker 中的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Docker上部署Python的Flask框架的教程 - Python技术站