Django项目的docker镜像制作

摘要:
最近搞了个django项目,在各个环境部署时总会遇到问题,于是便想到了docker部署,接下来记录一下一下docker镜像制作部署的流程。

最近搞了个django项目,在各个环境部署时总会遇到问题,于是便想到了docker部署,接下来记录一下一下docker镜像制作部署的流程。

基础镜像:镜像中运行的项目或者启动的一些服务,都要在一个基础镜像之上才能运行这些服务,比如一个django项目或者mysql数据库等,都要在Linux操作系统之上来运行,所以打包我们自己的项目时,必须要有个基础镜像来当作我们项目运行的基础环境。

一、基础镜像制作(python运行环境搭建)

1.基础镜像的dockerfile

#基础镜像为centos,版本为7,build镜像时会自动下载
FROM centos:7  

#制作者信息
MAINTAINER jiayifei

#设置环境变量
ENV CODE_DIR=/home/jiayifei/project/LittleCow
ENV DOCKER_SCRIPTS=$CODE_DIR/base_image/scripts

#将scripts下的文件复制到镜像中的DOCKER_SCRIPTS目录
COPY ./scripts/* $DOCKER_SCRIPTS/

#执行镜像中的provision.sh脚本
RUN chmod a+x $DOCKER_SCRIPTS/*
RUN $DOCKER_SCRIPTS/provision.sh

2.provision.sh 文件

#!/bin/bash
set -e
 
#python的一些依赖
yum install -y 
    kde-l10n-Chinese
    glibc-common
    git
    wget
    mysql-devel
    gcc
    swig
    pulseaudio
    pulseaudio-libs
    pulseaudio-libs-devel
    zlib-devel
    bzip2-devel
    openssl-devel
    ncurses-devel
    sqlite-devel
    readline-devel
    tk-devel
    gdbm-devel
    db4-devel
    libpcap-devel
    xz-devel
    libffi-devel
    ncurese-devel
    automake
    autoconf
    libtool
    make
    alsa-lib-devel
    poppler-utils
 
#python3.7
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar -zxvf Python-3.7.4.tgz
cd Python-3.7.4
./configure
make && make install
rm -rf Python-3.7.4*
 
#pip3
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1.tar.gz
cd pip-9.0.1
python3.7 setup.py install
rm -rf pip-9.0.1*
pip3 install --upgrade setuptools

3.build基础镜像

docker build -t base_lcow:v1.0 .

二、项目镜像制作(项目运行环境搭建)

1.项目镜像的Dockerfile

#基础镜像
FROM base_lcow:v1.0
 
#语言编码设置
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LC_ALL zh_CN.UTF-8
 
 
#将项目目录文件复制到镜像中,CODE_DIR是在基础镜像中定义的
COPY . $CODE_DIR/
 
 
#安装项目依赖包
RUN pip3 install -r $CODE_DIR/requirement.txt
 
#暴露端口
EXPOSE 8080
 
 
#启动项目
CMD ["python3.7", "/home/jiayifei/project/LittleCow/manage.py", "runserver", "0.0.0.0:8080"]

2.build项目镜像

docker build -t lcow:v1.0 .

3.启动镜像

docker run -it -p ip:443:8080 镜像id

三、项目镜像迁移(其他环境下部署项目)

1.镜像查看及导出

#镜像查看
docker images
#镜像导出
docker save -o test.tar image_name
docker save image_name > /test.tar

2.容器查看及导出

#容器查看
docker container ls -a
#容器导出(test为容器名)
docker export -o test.img test
docker export test >test.tar

3.镜像or容器导入

#导入容器
docker import test.img test
#导入镜像
docker load --input test.tar

参考博客:https://blog.csdn.net/bocai_xiaodaidai/article/details/92838984;https://www.cnblogs.com/mswei/p/10365226.html

免责声明:文章转载自《Django项目的docker镜像制作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安装安装.net framework过程中出现的问题ZYNQ:使用 PetaLinux 构建Linux项目下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

「Docker」关于 Docker volume 挂载时文件或文件夹不存在的问题

背景介绍 docker volume 可以使我们在启动docker容器时,动态的挂载一些文件(如配置文件), 以覆盖镜像中原有的文件,但是,挂载一个主机上尚不存在的文件夹或者文件到容器中会怎样呢?这里特意做了一下实践,记录实验结果如下: 文件夹挂载 docker在文件夹挂载上的行为是统一的,具体表现为: 若文件夹不存在,则先创建出文件夹(若为多层文件夹,...

docker——harbor

为什么要用harbor? 在实际生产运维中,往往需要把镜像发布到几十、上百台或更多的节点上。这时单台Docker主机上镜像已无法满足,项目越来越多,镜像就越来越多,都放到一台Docker主机上是不行的,我们需要一个像Git仓库一样系统来统一管理镜像。这里介绍的是一个企业级镜像仓库Harbor,将作为我们容器云平台的镜像仓库中心。Habor是由VMWare公...

容器监控告警方案(cAdvisor + nodeExporter + alertmanager + prometheus +grafana)

一、prometheus基本架构 Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computi...

安装django及配置

安装 diango官网下载地址 https://www.djangoproject.com/download/ 安装最新的LTS版本 pip安装(在windows的crm中或pycharm中的Terminal中输入) # 安装 三 选 一 pip install django==1.11.18 pip install django==1.11.18...

Django微信小程序后台开发教程

本文链接:https://blog.csdn.net/qq_43467898/article/details/83187698Django微信小程序后台开发教程1 申请小程序,创建hello world小程序2 添加交互框和按钮3 在服务器配置hello django4 实现计算器接口5 配置服务器将后端与微信小程序连接5.1 uwsgi配置5.2 htt...

Django之Cookie

cookie是什么? 保存在浏览器端“键值对” 服务端可以向用户浏览器端写cookie 客户端每次发请求时,会携带cookie去 应用场景: 投票 用户登录 1、获取Cookie: request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='',...