zoukankan      html  css  js  c++  java
  • Dockerfile封装Django镜像

    部署过程

    1.查看镜像

    docker images

    2.在/opt下建立了docker目录,下载一个django-2.1.7的源码包,

    mkdir  -p /opt/docker
    
    cd /docker

    该  /opt/docker 文件夹需要用到 的文件如下,django文件需要下载  ,epel.repo 需要从阿里云进行下载,Dockerfile和run.sh 需要自己写

    在该目录下载阿里云扩展源epel.repo文件

    wget https://media.djangoproject.com/releases/2.1/Django-2.1.7.tar.gz
    wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    vim  Dockerfile和run.sh,其中run.sh是用来执行Django的bash脚本,Dockerfile即为自动build python的文件,此文中的核心也是Dockerfile.

    3.编写Dockerfile

    vim  Dockerfile

    写入以下配置:

    FROM centos
    MAINTAINER TigerLee
    
    ADD epel.repo /etc/yum.repos.d
    RUN yum update -y
    
    RUN yum install -y python36
    RUN yum install -y python36-pip
    RUN pip3 install setuptools
    ADD Django-2.1.7.tar.gz /opt/
    
    WORKDIR /opt/
    RUN mv Django-2.1.7 django
    
    WORKDIR /opt/django
    RUN python3 setup.py install
    
    WORKDIR /opt
    RUN django-admin.py startproject qishi3dj
    
    ADD run.sh /opt/qishi3dj/run.sh
    WORKDIR /opt/qishi3dj
    RUN chmod 777 run.sh
    EXPOSE 8000
    CMD ["/bin/sh","run.sh"]
    简洁配置

    配置说明:

    FROM centos
    MAINTAINER TigerLee  # 名字可自定义
    
    ADD epel.repo /etc/yum.repos.d  # 将当前目录的epel.repo文件拷贝到容器的/etc/yum.repos.d目录下   ADD相当于 copy+解压
    RUN yum update -y  # 运行命令
    
    RUN yum install -y python36
    RUN yum install -y python36-pip
    RUN pip3 install setuptools
    ADD Django-2.1.7.tar.gz /opt/   # 拷贝并解压
    
    WORKDIR /opt/  # 进入/opt目录    # WORKDIR 相当于cd命令
    RUN mv Django-2.1.7 django  # 运行命令mv   这里相当于重名了
    
    WORKDIR /opt/django    # 进入/opt/django目录
    RUN python3 setup.py install
    
    WORKDIR /opt
    RUN django-admin.py startproject qishi3dj  # 创建的django项目
    
    ADD run.sh /opt/qishi3dj/run.sh  # 复制文件到某个目录
    WORKDIR /opt/qishi3dj
    RUN chmod 777 run.sh   # 修改文件权限 ,可执行
    EXPOSE 8000  # 声明容器端口
    CMD ["/bin/sh","run.sh"]  # 容器启动时默认执行的命令

    4.编写run.sh

    python3 manage.py runserver 0.0.0.0:8000

    开始构建

    打包为镜像

     sudo docker build -t deng/django217 .

    查看镜像

    docker images

    此时后台启动镜像,并把8000端口映射出来

    使用交互式模式进入容器,再使用ps -ef查看运行的进程

    docker run -d -p 9000:8000 bba0c98 
    docker container ls

    使用交互式模式进入容器,再使用ps -ef查看运行的进程

    docker exec -t 6bc57de7f8e8 /bin/bash
    ps -ef 

     

    进入容器内,修改django配置文件

    浏览器地址栏访问 192.168.12.80:9000,如果访问失败的话,可能是服务器的防火墙导致的,需要关闭防火墙。

    setenforce  0
    iptables -F 清空防火墙规则
    systemctl  disable  firewalld

    如果需要查看log日志,可以使用如下命令,-f代表持续打印:

    docker logs -f container_id

     

  • 相关阅读:
    [经典SQL语句]根据父级ID查找所有子级ID,并将所有ID用逗号隔开返回
    小程序页面之间传值
    微信小程序样式wxss各种问题总结(不断更新)
    产品经理--用户体验设计
    linux(centos)下为php添加添加GD扩展
    discuzx3.2发帖流程
    linux(centos)下配置nginx配置文件nginx.conf显示语法高亮
    Mysql关于字段的操作(记录)
    Mysql为表字段添加索引(记录)
    laravel-admin报错: Driver [] is not supported.
  • 原文地址:https://www.cnblogs.com/knighterrant/p/10778291.html
Copyright © 2011-2022 走看看