Django容器(上): 自定义基础镜像
发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,开始之前某个 Python 项目,基于 Python:3.6 与 Django:1.11 框架开发,希望项目能够容器化,然后可以通过 docker-compose 等工具编排容器/应用,本篇文章的目标
千家信息网最后更新 2024年11月16日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安全错误
数据库的锁怎样保障安全
云服务平台服务器如何注册
万鸿网络技术有限公司
软件开发专员岗位责任
服务器uefi硬盘批量克隆
网络安全课本内容
php免数据库短网址
Go数据库关联关系
德迅服务器 杭州 东莞
河北文档软件开发定制企业
文件系统服务器管理论文
铸盾网络安全背景
实验室服务器放哪
玩服务器莫名其妙被封号了怎么办
万方数据库传文档
高学和软件开发
人身安全网络安全知识
院校专业选择数据库官网
ktv数据库设计
计算机二级数据库安装包
网络安全说说500字
网络安全实践课后答案
服务器静态网页的发布
校内实训总结网络技术
数据库除了万方
数据库实现注册
软件开发专业薪资
晋中信息学院毕业论文数据库网址
饥荒联机版四种服务器
软件开发要做什么工作
沈阳管家婆数据库恢复