5分钟教会你用Docker部署一个Python应用

花开有时
花开有时
发布时间:2026-10-15 | 4人浏览过
原创

本文详细介绍如何使用Docker部署Python项目,涵盖Dockerfile常用指令解析、镜像构建及容器运行流程。通过Flask示例演示从开发测试到端口映射的完整操作,帮助开发者快速掌握容器化部署技能。

前言

在传统物理机或云服务器上部署项目时,往往面临诸多痛点。

常见问题包括项目部署效率低下、服务器资源利用率低、迁移过程复杂以及扩展性不足。

相比之下,采用 Docker 进行项目部署具有显著优势:

  • 能够高效利用系统资源。
  • 服务启动速度更快。
  • 环境保持一致,使得迁移操作更加便捷。

本文将介绍使用 Docker 部署 Python 项目的标准流程。

1. Dockerfile 描述文件

Dockerfile 是位于项目根目录下的配置文件,Docker 命令可依据该文件构建镜像。

其中常用的指令包括:

FROM

用于指定基础镜像。

MAINTAINER

用于指定维护者信息,该指令可省略。

RUN

通常与安装命令结合使用,用于安装工具及依赖包。

ADD

用于将宿主机文件复制到容器内,并自动执行解压操作。

COPY

功能与 ADD 类似,但不会执行解压操作。

WORKDIR

用于切换容器内的工作目录。

VOLUME

用于配置宿主机与容器之间的目录映射。

EXPOSE

用于配置容器内项目对外暴露的端口号。

CMD

用于指定容器启动后执行的命令。

例如,可通过该指令运行特定命令来启动项目。

2. 实战一下

使用 Docker 部署应用的常规流程如下:

首先完成项目开发并在本地测试通过。

随后编写 Dockerfile 并放置到项目根目录。

接着打包生成镜像文件。

然后运行镜像容器。

最后进行功能测试。

为便于演示,本文以简单的 Flask 项目为例进行讲解。

2-1 项目开发

from flask import Flask

# 安装依赖
# pip3 install -U flask

app = Flask(__name__)

@app.route('/')
def index():
    return "测试容器部署!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8888)

# 浏览器访问测试
# http://127.0.0.1:8888/

项目开发完成并通过本地测试后,即可开始编写 Dockerfile 文件。

2-2 编写 Dockerfile

在项目根目录下创建 Dockerfile 文件,并依据前述指令编写描述脚本。

需注意,Dockerfile 中通过 EXPOSE 指令暴露的端口号,必须与入口文件中定义的端口号保持一致。

# Dockerfile

FROM centos:7.9.2009
RUN yum makecache fast;
RUN yum install python3-devel python3-pip -y
RUN pip3 install -i https://pypi.douban.com/simple flask
COPY main.py /opt
WORKDIR /opt
EXPOSE 8888
CMD ["python3","main.py"]

2-3 构建镜像

# 在当前文件夹下,根据Dockerfile文件构建一个镜像
# 镜像名称:xag/my_flask_web
# --no-cache:不使用旧的缓存进行镜像构建
docker build --no-cache -t "xag/my_flask_web" .

2-4 运行镜像容器

使用 docker run 命令基于已构建的镜像运行容器。

其中涉及的参数说明如下:

-d:表示容器在后台运行,而非前台运行。

--name:用于指定容器的别名。

-p:用于配置宿主机与容器之间的端口映射。

# -d:后台运行
# 宿主机(9999)映射容器内的8888(上面Dockerfile已经暴露了8888端口)
docker run -d --name flask_web -p 9999:8888 xag/my_flask_web  

2-5 测试一下

最后,在浏览器中通过宿主机暴露的端口号 9999 访问项目。

访问地址为:http://127.0.0.1:9999/

3. 总结

本文通过一个简单的 Web 项目,阐述了利用 Docker 部署项目的标准流程。

实际上,Dockerfile 具有极高的灵活性,还支持 ARG/ENV 设置环境变量、VOLUME 指令挂载目录、ENTRYPOINT 配置启动程序和参数等功能,读者可根据官方文档自行扩展学习。

至此,关于使用 Docker 部署 Python 应用的介绍到此结束。如需了解更多相关内容,请搜索本站历史文章或继续浏览后续文章,感谢大家的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表