【Python系列】Python 项目 Docker 部署指南

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

随着容器化技术的兴起,Docker 成为了一种流行的应用部署方式。它通过将应用及其依赖环境打包在一起,解决了"在我机器上可以运行"的问题,使得应用能够在任何支持 Docker 的环境中无缝运行。本文将详细介绍如何将 Python 项目部署到 Docker 容器中。
在这里插入图片描述

一.基础介绍

1. Docker 简介

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中。Docker 使用 Linux 容器(LXC)技术,但提供了比传统容器更加易用的工作流和用户界面。

2. 环境准备

在开始之前,请确保你的开发机器上已经安装了 Docker。你可以访问 Docker 官网下载并安装适合你操作系统的 Docker 版本。

3. 创建 Dockerfile

Dockerfile 是一个文本文件,包含了一系列的指令,用于自动化构建 Docker 镜像。以下是一个基本的 Python 项目的 Dockerfile 示例:

# 使用官方 Python 运行时作为父镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 将当前目录内容复制到工作目录
COPY . /app

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 暴露端口
EXPOSE 8000

# 运行应用
CMD ["python", "app.py"]

4. 构建 Docker 镜像

在 Dockerfile 所在的目录下打开终端,运行以下命令来构建 Docker 镜像:

docker build -t my-python-app .

这里 -t 参数用于给镜像指定一个标签,. 表示 Dockerfile 在当前目录。

5. 运行 Docker 容器

使用以下命令从镜像启动一个容器:

docker run -d -p 8000:8000 my-python-app

-d 参数表示后台运行容器,-p 参数用于端口映射,将容器的 8000 端口映射到宿主机的 8000 端口。

6. 访问应用

如果一切顺利,你现在可以通过浏览器访问 http://localhost:8000 来查看运行在 Docker 容器中的 Python 应用。

7. 数据持久化

在某些情况下,你可能需要持久化应用数据。Docker 提供了数据卷(volumes)来实现这一点。你可以使用以下命令来运行容器并挂载数据卷:

docker run -d -p 8000:8000 -v my-data:/app/data my-python-app

这里 -v 参数用于创建一个数据卷并将其挂载到容器内的 /app/data 目录。

8. 容器管理

Docker 提供了一系列命令来管理容器,例如:

  • docker ps:列出正在运行的容器。
  • docker stop <container_id>:停止指定的容器。
  • docker start <container_id>:启动已停止的容器。
  • docker logs <container_id>:查看容器的日志。

9. Docker Compose

对于复杂的应用,你可能需要同时运行多个容器。Docker Compose 允许你通过一个 YAML 文件来定义多个容器的配置,然后使用一个命令来启动或停止它们。创建一个 docker-compose.yml 文件:

version: "3"
services:
  web:
    build: .
    ports:
      - "8000:8000"
  redis:
    image: "redis:alpine"

使用以下命令启动所有服务:

docker-compose up -d

二.实现步骤

1.Dockerfile

FROM python:3.11.5-slim

WORKDIR /kg-qa/

COPY .env .env
COPY ./base ./base
COPY ./manager ./manager
COPY ./config/config.yaml ./config/config.yaml
COPY ./config/logger.ini ./config/
COPY ./base_run.sh ./ServerApp.py ./__init__.py ./
COPY ./requirements.txt ./requirements.txt

# 安装 Python 依赖
RUN pip install --upgrade pip
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 将应用代码复制到工作目录
COPY . /kg-qa/

ENTRYPOINT ["sh", "./base_run.sh"]

2.base_run.sh

#!/bin/sh

uvicorn ServerApp:app --host 0.0.0.0 --port 8080 --loop asyncio

3.启动脚本

#!/bin/sh

# 定义镜像名称和标签
IMAGE_NAME="kg-qa:latest"
CONTAINER_NAME="kg-qa"

# 切换到项目目录
cd /data/kg/kg-qa

# 切换到开发分支并拉取最新代码
echo "Checking out to development branch and pulling latest changes..."
git checkout dev
git pull

# 构建Docker镜像
echo "Building Docker image..."
docker build -t $IMAGE_NAME .

# 检查容器是否正在运行
if docker ps -a | grep -q $CONTAINER_NAME; then
    echo "Stopping and removing existing container..."
    docker stop $CONTAINER_NAME
    docker rm $CONTAINER_NAME
fi

# 启动Docker容器
echo "Starting container..."
docker run -d \
    --name $CONTAINER_NAME \
    -p 8080:8080 \
    --restart=always \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    -v /etc/localtime:/etc/localtime:ro \
    -v /data/kg/config/env.properties:/kg-qa/.env \
    -v /data/kg/config:/kg-qa/config \
    $IMAGE_NAME

echo "Container started successfully!"

# 打印容器日志
echo "Container logs:"
docker logs -f $CONTAINER_NAME

在这里插入图片描述

三.总结

Docker 为 Python 项目提供了一种快速、一致且可移植的部署方式。通过本文的介绍,你应该已经了解了如何将 Python 项目部署到 Docker 容器中。ocker 的世界非常广阔,本文只是冰山一角,还有许多高级特性去探索和学习。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

  • 27
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
你好!关于使用 Docker 部署 Python 应用,以下是一些基本步骤: 1. 首先,确保你已经安装了 Docker。你可以在 Docker 官方网站上找到适用于你操作系统的安装包,并按照指南进行安装。 2. 创建一个文件夹,用于存放你的 Python 项目文件和 Dockerfile。Dockerfile 是用来定义 Docker 镜像的配置文件。 3. 在该文件夹中创建一个名为 Dockerfile 的文本文件,并在其中编写以下内容: ``` # 基于Python镜像构建 FROM python:3 # 设置工作目录 WORKDIR /app # 将当前目录下的所有文件复制到工作目录中 COPY . /app # 安装依赖 RUN pip install --no-cache-dir -r requirements.txt # 设置容器启动时执行的命令 CMD ["python", "app.py"] ``` 这个 Dockerfile 假设你的 Python 应用主文件是 `app.py`,并且你有一个 `requirements.txt` 文件来管理依赖包。 4. 将你的 Python 项目文件和 `requirements.txt` 文件放在同一文件夹中。 5. 打开命令行终端,导航到之前创建的文件夹中,然后执行以下命令来构建 Docker 镜像: ``` docker build -t my-python-app . ``` 注意,`.` 表示 Dockerfile 所在的当前文件夹,`my-python-app` 是你为镜像取的名字。 6. 构建完成后,你可以使用以下命令来运行该镜像并将它映射到本地的端口上: ``` docker run -p 5000:5000 my-python-app ``` 这里假设你的 Python 应用监听在端口 5000 上,你可以根据实际情况进行修改。 现在,你的 Python 应用应该已经在 Docker 容器中运行起来了,并且可以通过访问 `http://localhost:5000` 在本地进行访问。 希望这些步骤对你有帮助!如果你有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kwan的解忧杂货铺@新空间代码工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值