zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Apache Ant 1.9.1 版发布
    Apache Subversion 1.8.0rc2 发布
    GNU Gatekeeper 3.3 发布,网关守护管理
    Jekyll 1.0 发布,Ruby 的静态网站生成器
    R语言 3.0.1 源码已经提交到 Github
    SymmetricDS 3.4.0 发布,数据同步和复制
    beego 0.6.0 版本发布,Go 应用框架
    Doxygen 1.8.4 发布,文档生成工具
    SunshineCRM 20130518发布,附带更新说明
    Semplice Linux 4 发布,轻量级发行版
  • 原文地址:https://www.cnblogs.com/ftxy/p/12215292.html
Copyright © 2011-2022 走看看