Django项目的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