找回密码
 会员注册
查看: 13|回复: 0

Python系列Python项目Docker部署指南

[复制链接]

7

主题

0

回帖

22

积分

新手上路

积分
22
发表于 2024-9-9 15:49:59 | 显示全部楼层 |阅读模式
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术,jvm,并发编程redis,kafka,Spring,微服务等常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora等数据库系列:详细总结了常用数据库mysql技术点,以及工作中遇到的mysql问题等新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝✨✨欢迎订阅本专栏✨✨博客目录一.基础介绍1.Docker简介2.环境准备3.创建Dockerfile4.构建Docker镜像5.运行Docker容器6.访问应用7.数据持久化8.容器管理9.DockerCompose二.实现步骤1.Dockerfile2.base_run.sh3.启动脚本三.总结随着容器化技术的兴起,Docker成为了一种流行的应用部署方式。它通过将应用及其依赖环境打包在一起,解决了"在我机器上可以运行"的问题,使得应用能够在任何支持Docker的环境中无缝运行。本文将详细介绍如何将Python项目部署到Docker容器中。一.基础介绍1.Docker简介Docker是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的运行环境到一个可移植的容器中。Docker使用Linux容器(LXC)技术,但提供了比传统容器更加易用的工作流和用户界面。2.环境准备在开始之前,请确保你的开发机器上已经安装了Docker。你可以访问Docker官网下载并安装适合你操作系统的Docker版本。3.创建DockerfileDockerfile是一个文本文件,包含了一系列的指令,用于自动化构建Docker镜像。以下是一个基本的Python项目的Dockerfile示例:#使用官方Python运行时作为父镜像FROMpython:3.8-slim#设置工作目录WORKDIR/app#将当前目录内容复制到工作目录COPY./app#安装依赖RUNpipinstall--no-cache-dir-rrequirements.txt#暴露端口EXPOSE8000#运行应用CMD["python","app.py"]12345678910111213141516174.构建Docker镜像在Dockerfile所在的目录下打开终端,运行以下命令来构建Docker镜像:dockerbuild-tmy-python-app.1这里-t参数用于给镜像指定一个标签,.表示Dockerfile在当前目录。5.运行Docker容器使用以下命令从镜像启动一个容器:dockerrun-d-p8000:8000my-python-app1-d参数表示后台运行容器,-p参数用于端口映射,将容器的8000端口映射到宿主机的8000端口。6.访问应用如果一切顺利,你现在可以通过浏览器访问http://localhost:8000来查看运行在Docker容器中的Python应用。7.数据持久化在某些情况下,你可能需要持久化应用数据。Docker提供了数据卷(volumes)来实现这一点。你可以使用以下命令来运行容器并挂载数据卷:dockerrun-d-p8000:8000-vmy-data:/app/datamy-python-app1这里-v参数用于创建一个数据卷并将其挂载到容器内的/app/data目录。8.容器管理Docker提供了一系列命令来管理容器,例如:dockerps:列出正在运行的容器。dockerstop:停止指定的容器。dockerstart:启动已停止的容器。dockerlogs:查看容器的日志。9.DockerCompose对于复杂的应用,你可能需要同时运行多个容器。DockerCompose允许你通过一个YAML文件来定义多个容器的配置,然后使用一个命令来启动或停止它们。创建一个docker-compose.yml文件:version:"3"services:web:build:.ports:-"8000:8000"redis:image:"redis:alpine"12345678使用以下命令启动所有服务:docker-composeup-d1二.实现步骤1.DockerfileFROMpython:3.11.5-slimWORKDIR/kg-qa/COPY.env.envCOPY./base./baseCOPY./manager./managerCOPY./config/config.yaml./config/config.yamlCOPY./config/logger.ini./config/COPY./base_run.sh./ServerApp.py./__init__.py./COPY./requirements.txt./requirements.txt#安装Python依赖RUNpipinstall--upgradepipRUNpipinstall-rrequirements.txt-ihttps://pypi.tuna.tsinghua.edu.cn/simple#将应用代码复制到工作目录COPY./kg-qa/ENTRYPOINT["sh","./base_run.sh"]12345678910111213141516171819202.base_run.sh#!/bin/shuvicornServerApp:app--host0.0.0.0--port8080--loopasyncio1233.启动脚本#!/bin/sh#定义镜像名称和标签IMAGE_NAME="kg-qa:latest"CONTAINER_NAME="kg-qa"#切换到项目目录cd/data/kg/kg-qa#切换到开发分支并拉取最新代码echo"Checkingouttodevelopmentbranchandpullinglatestchanges..."gitcheckoutdevgitpull#构建Docker镜像echo"BuildingDockerimage..."dockerbuild-t$IMAGE_NAME.#检查容器是否正在运行ifdockerps-a|grep-q$CONTAINER_NAME;thenecho"Stoppingandremovingexistingcontainer..."dockerstop$CONTAINER_NAMEdockerrm$CONTAINER_NAMEfi#启动Docker容器echo"Startingcontainer..."dockerrun-d\--name$CONTAINER_NAME\-p8080:8080\--restart=always\--privileged=true\-eTZ=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_NAMEecho"Containerstartedsuccessfully!"#打印容器日志echo"Containerlogs:"dockerlogs-f$CONTAINER_NAME12345678910111213141516171819202122232425262728293031323334353637383940414243三.总结Docker为Python项目提供了一种快速、一致且可移植的部署方式。通过本文的介绍,你应该已经了解了如何将Python项目部署到Docker容器中。ocker的世界非常广阔,本文只是冰山一角,还有许多高级特性去探索和学习。觉得有用的话点个赞👍🏻呗。❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍👍👍🔥🔥🔥StayHungryStayFoolish道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 20:19 , Processed in 3.240286 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表