python(44) : docker compose基于基础镜像部署python服务

Docker-compose部署Python项目避坑指南:从镜像打包到内网迁移的完整实践 本文详细介绍了使用docker-compose在内网环境中部署Python项目的完整流程和避坑指南。从镜像打包、依赖管理到docker-compose文件优化,提供了针对内网部署的实用解决方案和最佳实践,帮助企业开发者高效完成项目部署。 阅读详情

1.前言


docker compose基于python镜像启动容器, 支持多实例

2.环境信息


系统: Alibaba Cloud Linux release 3 (OpenAnolis Edition)

架构: x86_64

docker版本: Docker version 26.1.3, build b72abbb

3.构建基础镜像

3.1.Dockerfile

# 使用Python 3.11官方镜像作为基础镜像
FROM python:3.10-slim

WORKDIR /app

# 复制requirements.txt文件
COPY requirements.txt .

# 更新pip
RUN python -m pip install --upgrade pip  -i https://mirrors.aliyun.com/pypi/simple/ requests

# 根据requirements.txt文件安装依赖
RUN pip install --no-cache-dir -r requirements.txt  -i https://mirrors.aliyun.com/pypi/simple/ requests

# 安装其他依赖(可选)
#RUN pip install --upgrade Flask -i https://mirrors.aliyun.com/pypi/simple/ requests

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 创建日志目录
RUN mkdir -p /app/logs

3.2.build.sh

# 删除名为 py_base:0.1 的本地 Docker 镜像(如果存在)
docker rmi py_base:0.1


# 使用当前目录下的 Dockerfile 构建新的 py_base:0.1 镜像
docker build -t py_base:0.1 .  --no-cache

4.基于基础镜像启动容器运行python

4.1.Dockerfile

FROM py_base:0.1
 
# 设置工作目录
WORKDIR /app
 
# 设置环境变量
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
 
# 复制应用代码(从项目根目录复制)
COPY . .
 
# 防止.env.prod不存在报错
RUN touch /app/.env.prod 
# 删除原有.env文件(如果存在),并将.env.prod重命名为.env
RUN rm -f /app/.env && \
    if [ -f /app/.env.prod ]; then mv /app/.env.prod /app/.env; fi
 
# 更新pip
RUN python -m pip install --upgrade pip  -i https://mirrors.aliyun.com/pypi/simple/ requests
 

# 安装其他依赖(可选)
#RUN pip install --upgrade Flask -i https://mirrors.aliyun.com/pypi/simple/ requests
 
 
# 创建日志目录
RUN mkdir -p /app/logs
 
# 设置非root用户
RUN useradd --create-home --shell /bin/bash app && \
    chown -R app:app /app
USER app
 
# 暴露端口(如果需要的话)
#EXPOSE 8888
 
# 启动命令
CMD ["python", "main.py"]

4.2.docker-compose.yml和deploy.sh参考如下文档

参考: python(43) : docker compose部署python服务-优快云博客

Docker镜像定制实战:配置Yum源加速构建与Nginx服务部署 这次我们来看一个 Docker 基础实战主题:如何定制一个简单的镜像,并在容器内部配置 Yum 仓库,最终完成服务的安装与部署。这听起来像是基础操作,但很多人在实际构建时,往往会卡在“镜像构建慢”、“容器内软件安装失败”或“服务部署后无法访问”这几个环节。这篇文章的核心就是解决这些问题,让你能快速构建一个稳定、高效且可复用的 Docker 服务镜像。 我们将重点关注三个核心环节: 定制镜像 、 容器内配置 Yum 源 、 服务部署 。整个过程不依赖复杂的编排工具,只用最基础的 Docker 命令和 Dock 阅读详情

相关推荐

在Docker容器中部署Flask应用:一步步的实践指南

Flask是一个灵活的Web应用框架,它没有默认的数据库、表单验证或任何其他具体功能,这使得开发者可以快速地开发简单的应用,同时也可以扩展构建复杂的应用。

2401_85743969的博客 2119

Python项目打包, docker build构建docker镜像, Docker Compose (Docker编配)

重点内容: 将本地Python项目打包构建docker镜像,并在docker中运行【流程1-8】 Docker Compose (Docker编配) 附录: 其他常用docker命令

. 4190

Docker镜像定制实战:从基础镜像到生产级部署的完整指南

如果你已经熟悉了 Docker 的 run 、 exec 、 ps 这些基础命令,但每次部署服务时,还是得在容器里手动敲一堆 yum install 和 wget 命令,那么这篇文章就是为你准备的。 很多 Docker 新手会陷入一个误区:认为容器化就是把应用“塞”进一个现成的镜像里跑起来。这没错,但这只是第一步。真正的效率提升,来自于将部署过程固化——把那些重复的安装、配置步骤,从每次启动容器后的“手动操作”,变成构建镜像时就完成的“自动化脚本”。 今天我们要解决的,就是如何从“使用镜像”进阶到“定制镜像

weixin_34292402的博客 379

docker-compose部署python3.6+django+mysql5.7(原创详细)

1.docker基础配置 1.安装docker 和 docker-compose apt-get install -y docker apt install docker.io apt install docker-compose 2.配置docker阿里云加速器(其他都慢,阿里云最快最稳定) 登录阿里云,搜镜像加速器,自行配置 2.docker化部署django+mysql docker-compose 部署流程 1.新建docker-compose工程目录 mkdir 1.Dock.

yhn1992的博客 1961

Debian 10手动安装Docker Compose v2完整指南

Docker Compose是容器编排的核心工具,通过声明式YAML文件统一管理多容器服务生命周期。其原理基于客户端-服务端架构,由CLI解析配置、调用Docker Daemon API完成资源调度;技术价值在于屏蔽底层复杂性,实现开发、测试、生产环境的一致性交付。典型应用场景包括Jellyfin家庭影音服务器、微服务本地调试及HomeLab轻量级部署。在Debian 10(Buster)等长期支持但软件陈旧的系统中,因官方源仅提供过时的v1.21.0版本,且存在API兼容性、SSL证书库老化、命令格式演进

weixin_30367169的博客 289

Ubuntu 18.04下Laravel容器化实战:Docker Compose与volumes深度配置

容器化是现代PHP应用环境标准化的核心手段,其本质是通过声明式配置实现开发、测试与生产环境的一致性契约。基于Linux发行版的容器运行时依赖内核特性(如cgroups、namespaces)与用户空间工具链(glibc、systemd)协同工作;Docker Compose作为编排层,通过服务定义、网络隔离和卷挂载机制,将Laravel的文件系统敏感性(storage日志、缓存、.env)、进程模型(php-fpm+nginx分离)及调试需求(Xdebug主机发现)转化为可复现的工程实践。其中volumes

aodan5477的博客 484

Docker Compose 入门

本文介绍了Docker Compose的基本概念、安装方法及使用场景。Docker Compose是Docker官方的开源编排工具,通过YAML文件定义多容器应用的配置。文章详细讲解了docker-compose.yml模板文件的编写方法,包括常用指令如build、command、ports、volumes等,并提供了MySQL、Redis、Nginx等常见服务的配置示例。此外,还介绍了Traefik、Gogs、YApi等工具的集成方法,以及健康检查、网络配置等高级功能。最后给出了Compose的常用命令

weixin_51689532的博客 3973

Docker Compose多容器协同实战:React+Express+NGINX开发环境搭建

Docker Compose 是声明式定义和运行多容器应用的核心工具,其本质是服务拓扑的契约语言,而非简单命令封装。它依托容器网络、卷挂载与环境变量注入三大机制,实现服务间可靠通信与资源隔离。技术价值在于统一本地、测试与生产环境的一致性,消除‘在我机器上能跑’类协作障碍。典型应用场景包括前端(React)与后端(Express)联调、NGINX反向代理解决跨域、数据库(PostgreSQL)容器化依赖管理等。本文聚焦工程落地,详解如何通过可复用的 docker-compose.yml 配置,构建高可用、易调

weixin_34416649的博客 501

LibreNMS Docker源码解析:深入理解镜像构建过程与优化

LibreNMS是一款功能强大的开源网络监控工具,而Docker镜像则为其部署和使用提供了极大的便利。本文将深入剖析LibreNMS Docker镜像的构建过程,带你了解其内部结构和优化方法,帮助你更好地使用和定制这个镜像。 ## 一、Dockerfile核心构建步骤解析 Dockerfile是构建Docker镜像的基础,LibreNMS Docker镜像的构建过程主要包含以下关键步骤: #

gitblog_00575的博客 729

Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码)

本文详细介绍了如何利用Python爬虫技术,快速抓取东方财富网的实时股票数据。通过逆向分析其JSONP数据接口,构建了包含请求处理、数据清洗、分页调度及多格式存储的完整自动化采集系统,并提供了应对反爬策略与生产部署的进阶优化思路,附有可直接运行的完整代码。

weixin_29084231的博客 875

解读文献(五)------基于阻抗控制

文章目录背景主动柔顺控制阻抗控制基于力的阻抗控制基于位置的阻抗控制力位混合控制 背景 主动柔顺控制 阻抗控制 基于力的阻抗控制 基于位置的阻抗控制 力位混合控制 ...

accumulation 1万+

【docker】linux系统docker的安装及使用

然后,只要一个命令,就能同时启动/关闭这些容器。阿里云:http:**//mirrors.aliyun.com/docker-ce/linux/centos/**docker-ce.repo 清华大学源:https:**//mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/**docker-ce.repo。注:所有docker容器的卷,没有指定目录情况下(具名挂载和匿名挂载),都在 /var/lib/docker/volumes/ 下。

Best_lgx的博客 8762

Ubuntu22.04下3分钟搞定GitHub加速:SwitchHosts+小鱼工具保姆级配置指南

本文提供Ubuntu22.04下快速解决GitHub下载超时问题的保姆级教程,通过SwitchHosts图形化工具和小鱼一键换源工具实现高效加速。详细步骤包括环境准备、工具安装配置及验证方法,帮助开发者轻松优化GitHub访问速度,提升工作效率。

weixin_29258297的博客 564

Docker 学习:术语、使用、Compose、Swarm

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

freeking101的博客 6169

OpenCV实战:5分钟搞定图像拼接(附Python代码)

本文通过OpenCV实战教程,详细讲解如何使用Python在5分钟内完成图像拼接。重点介绍`findHomography`函数和单应性矩阵的应用,提供完整的代码示例和常见问题解决方案,帮助开发者快速掌握图像拼接技术。

weixin_26833503的博客 121

ADS基础教程24 - Gerber文件的导入

一、引言二、基本概念1.仿真文件下载2.仿真文件介绍二、导入步骤1.新建workspace2.选择Layout结构3.导入设计4.选择文件类型5.导入文件6.预览文件内容7.铜皮离散问题四、总结选择。通过本文章结束,可以了解ADS中如何将导入Gerber文件,并且对导入的铜皮进行合并。下一步就针对导入的文件进行层叠设置和编辑。END!}}END!

XZ_ZC的博客 3055

Debian 10 手动安装 Docker Compose 插件完整指南

Docker Compose 是容器编排的核心工具,其现代架构已从 Python 迁移至 Go 语言实现,并作为 docker CLI 的原生子命令(docker compose)集成。这一演进带来更高性能、更强安全性和对新版 Compose 文件格式(如 version: '3.8')的完整支持。然而,在 Debian 10 等长期支持但已停止更新的系统中,官方 apt 源仅提供废弃的旧版 docker-compose 1.x,无法解析 deploy、profiles 等关键字段,导致部署失败。因此,必须

381

[STC32G144K246入门第一步]点亮LED

STC32G144K246是一款高性能32位8051单片机,集成了丰富外设资源,适用于工业控制和复杂算法处理。该芯片支持双模式内核,内置硬件加速器,提供246KB Flash和144KB SRAM存储空间。文章详细介绍了开发环境搭建步骤、寄存器配置方法,并给出了LED驱动示例代码,通过推挽输出控制P42口实现闪烁效果。虽然开发环境相比ARM存在不足,但通过合理配置仍可满足项目需求。该教程为开发者快速上手STC32G144K246提供了实用参考。

sinat_58149788的博客 799

【服务虚拟化】基于Docker部署FastDFS+Nginx

1、准备工作 1.1、准备基础环境 先准备三个虚拟机来模拟集群,它们的ip分别是192.168.36.132、192.168.36.133、192.168.36.134,宿主系统都是centos7,并且都安装了带有阿里云镜像加速的Docker。 1.2、准备FDFS+NGINX部署文件 FDFS并没有在docker hub上维护官方镜像,所以需要自行构建。用于创建镜像的部署文件可以通过以下......

sword_csdn的博客 3703

MATLAB算法实战应用案例精讲-【数模应用】装箱问题

装箱问题可以根据不同的维度进行分类。以下是一些常见的装箱问题二维装箱问题:二维装箱问题假设所有物品都是平面上的矩形,并且需要将它们放入平面上的容器中。这个问题的目标是找到一种装箱方案,使得物品不重叠并占据的总面积最小。三维装箱问题:三维装箱问题考虑到物品可以具有高度,并且需要将它们放入三维容器(如箱子或货柜)中。目标是找到一种装箱方案,使得物品不重叠且总体积最小。多维装箱问题:多维装箱问题是指在更高维度空间中进行装箱的问题。除了长度和宽度之外,物品可能具有其他属性,如高度、重量、形状等。

qq_36130719的博客 1572

SAP CAP core data service 里 association 和 composition 的区别

我们进行 SAP CAP 开发时,在schema.cds里进行数据建模,可以使用 association 和 composition,来描述两个 entity 之间的关联关系。在 SAP BTP 的 Cloud Application Programming Model (CAP) 中,cds文件定义了数据模型,而和是用于建立实体关系的两种关键机制。理解它们的区别对于构建高效、清晰的 CAP 数据模型至关重要。下面,我们将通过严谨的逻辑推理,结合代码示例,深入分析和之间的核心差异。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 323

docker-compose学习记录

Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。

weixin_44729743的博客 286

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

10分钟部署Redash数据可视化平台:Docker Compose多环境实战指南

Redash采用多容器架构设计,通过Docker Compose实现服务编排。核心组件包括Web应用服务器、任务调度器、Redis缓存、PostgreSQL数据库和邮件服务。开发环境配置文件[compose.yaml](https://link.gitcode.com/i/e61f6570c89d42ece5659abcfe35dc92)定义了完整的服务依赖关系,生产环境可参考官方setup仓库进...

gitblog_00405的博客 732

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Docker化Flask API:从本地开发到生产部署的完整实践

Flask是Python轻量级Web框架的代表,Docker则提供跨环境一致的运行时封装能力。理解二者结合的本质,需回归到‘环境一致性’这一核心工程问题:传统virtualenv仅隔离Python包,而Docker通过Linux命名空间与cgroups实现系统级硬隔离,彻底解决glibc、openssl、C扩展等底层依赖冲突。其技术价值在于将‘在我机器上能跑’转化为可验证、可复现、可交付的标准化镜像。典型应用场景包括快速联调API、教学演示环境搭建、以及运维侧服务容器化准入验证。本文聚焦Flask + Do

weixin_33853794的博客 374

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

部署project_exam_system项目(续)

制作docker-compose.yml文件,实现一键部署;

m0_73907608的博客 1942

推荐一个极其轻量级的 Docker 基础镜像,大小 2MB

你好,我是征哥,提到轻量级的 Docker 镜像,很多人都知道 Alpine,因为它确实很轻,只有 5.57MB,使用它作为基础镜像的 Python 也就 44MB。但它依然不是最轻量级的,今天要说的是 Google 的 distroless 基础镜像,distroless 镜像 gcr.io/distroless/static-debian11 只有 2 MB,是 Al...

somenzz的博客 8925
上一篇: python(43) : docker compose部署python服务
下一篇: python(45) : docker构建支持消费rocketmq的客户端
楽焫旒璡
博客等级 码龄10年 357粉丝 365原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值