Django容器(上): 自定义基础镜像
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,开始之前某个 Python 项目,基于 Python:3.6 与 Django:1.11 框架开发,希望项目能够容器化,然后可以通过 docker-compose 等工具编排容器/应用,本篇文章的目标
千家信息网最后更新 2025年02月24日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安全错误
数据库的锁怎样保障安全
国家网络安全局权利大吗
长沙华诚网络技术有限公司
网络安全态势感知时间序列
网络安全和信息化安全落实
淘宝dns服务器
郑州商城软件开发价格实惠
濮阳市公安局网络安全
河南高校党建软件开发系统
网络技术员工资低
小米个人云服务器
金蝶修改服务器地址
ps软件开发者
网络安全怎么写三年级
软件开发项目风险
永城市网络安全大队队长
gis空间数据库视图
软件开发需要电脑配置
百万答题软件开发
云服务器一直同步
济南正规的存储服务器测评
云上服务器安全防护
云服务器路由管理器
远程管理域服务器
数据库数据中间件
有网络技术的学校
奉贤区远程视频系统服务器
软件开发行业利税比例
app服务器属地管理办法
服务器可以放在办公室里吗
学习数据库有什么推荐