2024最新!Docker官方文档指南:Python应用容器化从入门到精通

【免费下载链接】docs Source repo for Docker's Documentation 【免费下载链接】docs 项目地址: https://gitcode.com/gh_mirrors/docs3/docs

Docker容器化技术已成为Python应用开发和部署的必备技能,它能确保应用在任何环境中都能一致运行。本文将基于Docker官方文档,带你通过简单步骤实现Python应用的容器化,即使是新手也能快速上手。

📋 准备工作

开始容器化之旅前,请确保你的环境已满足以下条件:

  • 安装最新版Docker Desktop
  • 安装Git客户端(用于获取示例代码)

🐍 获取示例应用

我们将使用基于FastAPI框架的示例应用进行演示。打开终端,执行以下命令克隆项目:

$ git clone https://gitcode.com/gh_mirrors/docs3/docs && cd docs

Python应用容器化开发环境设置 图:Python应用容器化开发环境示意图

🚀 初始化Docker资产

Docker提供了两种方式来创建容器化所需的配置文件:自动初始化和手动配置。

🌟 使用Docker Init自动生成(推荐新手)

在项目目录中运行docker init命令,根据提示完成配置:

$ docker init
? What application platform does your project use? Python
? What version of Python do you want to use? 3.12
? What port do you want your app to listen on? 8000
? What is the command to run your app? python3 -m uvicorn app:app --host=0.0.0.0 --port=8000

该命令会自动生成以下文件:

  • .dockerignore:指定构建时需要排除的文件
  • Dockerfile:容器构建说明
  • compose.yaml:服务编排配置
  • README.Docker.md:容器化说明文档

🛠️ 手动创建Dockerfile(进阶选项)

如果你需要更精细的控制,可以手动创建Dockerfile。以下是使用官方Python镜像的基础配置:

# syntax=docker/dockerfile:1
ARG PYTHON_VERSION=3.12
FROM python:${PYTHON_VERSION}-slim

# 防止Python写入pyc文件
ENV PYTHONDONTWRITEBYTECODE=1
# 确保Python输出直接发送到终端
ENV PYTHONUNBUFFERED=1

WORKDIR /app

# 创建非特权用户
ARG UID=10001
RUN adduser --disabled-password --gecos "" --uid "${UID}" appuser

# 安装依赖
RUN --mount=type=cache,target=/root/.cache/pip \
    --mount=type=bind,source=requirements.txt,target=requirements.txt \
    python -m pip install -r requirements.txt

USER appuser
COPY . .
EXPOSE 8000
CMD ["python3", "-m", "uvicorn", "app:app", "--host=0.0.0.0", "--port=8000"]

Docker镜像分层结构 图:Docker镜像分层结构示意图,展示了Python应用容器的构建过程

🔒 使用Docker Hardened Images(增强安全性)

对于生产环境,推荐使用Docker Hardened Images (DHI),这些镜像经过安全强化,更适合企业级应用:

$ docker login dhi.io
$ docker pull dhi.io/python:3.12.12-debian13-fips-dev

⚙️ 构建和运行容器

完成配置后,使用Docker Compose构建并启动应用:

$ docker compose up --build

打开浏览器访问http://localhost:8000,你将看到FastAPI应用界面。要在后台运行应用,可以添加-d参数:

$ docker compose up --build -d

多容器应用运行示意图 图:多容器应用架构示意图,展示了Python应用与其他服务的协作

要停止应用,使用以下命令:

$ docker compose down

📝 项目文件结构

成功初始化后,你的项目目录应包含以下文件:

├── app.py
├── requirements.txt
├── .dockerignore
├── .gitignore
├── compose.yaml
├── Dockerfile
└── README.md

这些文件的详细说明:

🎯 总结

通过本文,你已经学会了如何使用Docker容器化Python应用,包括:

  • 使用docker init快速生成配置
  • 编写优化的Dockerfile
  • 使用Docker Compose管理应用
  • 了解生产环境的安全镜像选项

🚀 下一步

接下来,你可以深入学习:

掌握容器化技术将极大提升你的Python应用开发和部署效率,开始你的Docker之旅吧!

【免费下载链接】docs Source repo for Docker's Documentation 【免费下载链接】docs 项目地址: https://gitcode.com/gh_mirrors/docs3/docs

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐