Django容器(上): 自定义基础镜像
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,开始之前某个 Python 项目,基于 Python:3.6 与 Django:1.11 框架开发,希望项目能够容器化,然后可以通过 docker-compose 等工具编排容器/应用,本篇文章的目标
千家信息网最后更新 2025年12月01日Django容器(上): 自定义基础镜像
开始之前
某个 Python 项目,基于 Python:3.6 与 Django:1.11 框架开发,希望项目能够容器化,然后可以通过 docker-compose 等工具编排容器/应用,本篇文章的目标是自定义Django基础镜像。
与《为什么需要自定义一个基础镜像?》文章相同,基础镜像作用是为项目镜像提供支持。它构建在 Python 官方镜像之上,添加项目一些需要的扩展模块,例如 Django、pymysql、Gunicorn等常用模块,具体以项目实际需求为准。
最后为能够高效的处理静态文件请求,使用 Nginx 反向代理 Django 应用,不过这是下一篇文章要讲的了,《Django容器(下): 使用Gunicorn管理Django》,敬请期待 公众号每周四 docker专题更新文章。。
环境描述
容器镜像: python:3.6容器系统: debian 9 (stretch)Docker版本: CE - 17.06.0Docker主机: Ubuntu Server 16.04操作步骤
- 基础镜像构建目录
tree base/base/├── conf│ ├── 404.html│ ├── default.conf│ ├── nginx.conf│ ├── requirements.txt│ ├── sources.list│ ├── ssl│ │ ├── domain.crt│ │ └── domain.key│ └── supervisord.conf└── `Dockerfile`2 directories, 9 files- 基础镜像 Dockerfile 文件
cat base/Dockerfile# start-baseFROM python:3.6MAINTAINER dongnan #<@微信公众号:运维录># aptCOPY conf/sources.list /etc/apt/sources.listRUN apt-get update \ && apt-get install -y supervisor nginx \ && apt-get clean \ && rm -r /var/lib/apt/lists/*# envENV TZ=Asia/Shanghai \ LANG=en_US.UTF-8# django COPY conf/requirements.txt /root/RUN pip --no-cache-dir install -r /root/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/这个 Dockerfile 很短,因为是项目基础镜像,只做一些基础工作就可以了。
它首先安装 supervisor nginx 软件包,然后是设置容器的环境变量。
最后使用 pip 安装项目依赖,django 、pymysql 都在 requirements.txt 这个文件中定义。
- 构建镜像
docker build -t start-base .Sending build context to Docker daemon 767kBStep 1/8 : FROM python:3.6# ...省略Successfully built fc3f6f242301Successfully tagged start-base- 验证镜像
基础镜像准备完毕后,就可以在项目镜像使用了,这里没有为基础镜像添加 TAG 标记,所以它是默认的 latest 。
docker images --format "{{.Repository}} {{.Tag}}" start-base latest小结
最后来总结下文章中的知识点
- 基础镜像作用是为
项目镜像提供支持,并在基础镜像之上添加项目代码,完成项目镜像构建工作。 - 使用
supervisor在容器中管理nginx、gunicorn (python WSGI Server)进程。 pip是python包管理工具,该工具提供了对python包的查找、下载、安装、卸载的功能。pip -i选项, 指定仓库地址,默认为 https://pypi.org/simple,**速度很慢**建议使用国内仓库。
参考文章
doker&k8s Qun [703906133]
镜像
基础
项目
容器
文章
工具
文件
管理
仓库
作用
模块
环境
工作
应用
支持
相同
专题
主机
代码
公众
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
谛听网络技术 环球黑卡
安卓模拟器服务器
合肥软件开发驻场服务公司
osc网络安全
下列数据库属于多租户数据库的是
服务器属于网络设备吗
天使之战服务器端
互联网科技的发展趋势
互联网科技展览会
谈谈数据库中的一二三范式
软件开发需掌握的英语单词
办公软件开发就选臻动传媒
mc服务器类型
数据库的安全性体现在哪方面
b站监测到本地时间与服务器时间
校园网络安全与保护工作总结
r9数据库升级
广州博彩软件开发公司
数据库系统的结构和优点
苏州做分布式存储服务器
软件开发公司开发流程
电子书数据库管理
下一代网络技术应用
目标数据库管理的主要功能
数据库中abcf是什么
苹果推信软件开发哪里做
福州点橙网络技术有限公司
u9数据库安装包
软件开发过程一般有哪些风险
广州路子野互联网科技有限公司