• 使用dockerfile封装django镜像


    准备工作

    /opt/创建一个docker文件夹,然后下载一些相关配置

    cd /opt/
    mkdir docker
    cd docker 
    wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #阿里云拓展源文件
    wget -O /opt/docker/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
    自行准备上传一个django2.1.15的tar压缩包  django官网去下载
    


    docker目录下再创建两个文件

    touch Dockerfile
    vim run.sh
    

    run.sh文件中添加如下代码

    python3 manage.py runserver 0.0.0.0:8000
    

    Dockerfile文件中添加如下代码
    完整版

    FROM centos  # 指定基础对象
    MAINTAINER LiuWei  # 指定作者
    
    ADD CentOS-Base.repo /etc/yum.repos.d   # ADD添加的意思(如果是压缩文件,也会自动解压)
    ADD epel.repo /etc/yum.repos/d  #将当前目录的epel.repo文件添加到容器的/etc/yum.repos.d目录下
    RUN yum clean all  #清除全部缓存
    RUN yum makecache #创建新的缓存
    RUN yum update -y  #更新yum工具
    
    RUN yum install -y python36  #安装python3
    RUN yum install -y python36-pip #安装python3的pip
    RUN pip3 install setuptools
    ADD Django-2.1.15.tar.gz /opt/  #将django压缩包添加到容器的opt目录下并解压
    
    WORKDIR /opt/   #进入/opt目录
    RUN mv Django-2.1.15 django  #运行命令 mv将原来的名字改成django
    
    WORKDIR /opt/django  #进入改名后的/opt/django目录
    RUN python3 setup.py install  #安装django必需运行的的命令
    
    WORKDIR /opt #进入opt目录
    RUN django-admin.py startproject qishidj  # 创建django项目
    
    ADD run.sh /opt/qinshidj/run.sh   #添加脚本到目录下
    RUN sed -i 's/ALLOWED_HOSTS = []/ALLOWED_HOSTS = ['*']/g' /opt/qishidj/qishidj/settings.py #修改django中settings文件中的ALLOWED_HOSTS的值
    WORKDIR /opt/qishidj
    RUN chmod 777 run.sh   #赋读写执行权限
    EXPOSE 8000  #声明容器端口
    CMD ["/bin/sh","run.sh"]  #容器启动时默认执行的命令
    

    目前使用版

    FROM centos
    FROM python:3.6.6
    
    ADD CentOS-Base.repo /etc/yum.repos.d
    ADD epel.repo /etc/yum.repos.d
    
    RUN pip3 install setuptools
    ADD Django-2.1.15.tar.gz /opt/
    
    WORKDIR /opt/
    RUN mv Django-2.1.15 django
    
    WORKDIR /opt/django
    RUN python3 setup.py install
    
    WORKDIR /opt
    RUN django-admin.py startproject qishidj
    
    ADD run.sh /opt/qishidj/run.sh
    RUN sed -i "s/ALLOWED_HOSTS = []/ALLOWED_HOSTS = ['*']/g" /opt/qishidj/qishidj/settings.py
    WORKDIR /opt/qishidj
    RUN chmod 777 run.sh
    EXPOSE 8000
    CMD ["/bin/sh","run.sh"]
    
    

    开始构建

    docker build -t qishi8/django-217 .   # build构建, .表示在本地执行必须加
    

    成功后会出现,说明成功了

    然后启动生成的镜像

    docker run -d -p 5000:8000 qishidj/django-2115   # 要注意先后顺序  不然报错
    

    然后页面访问,是能够成功访问的

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    jQuery 核心
    Visual Studio 文件没发布出来
    冷门JS技巧
    项目发布: error CS0103: 当前上下文中不存在名称“*****”
    jQuery编程的最佳实践
    HTML5中类jQuery选择器querySelector的使用
    html dl dt dd标签元素语法结构与使用
    EF Code First 更新数据库, 数据库迁移
    ASP.NET MVC中的拦截器
    C#Linq中的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods,skip,take,takewhile,skipwhile,编译查询等
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/13922839.html
Copyright © 2020-2023  润新知