Fork me on GitHub

Docker篇章10:自己构建django的docker镜像

Docker篇章10:自己构建django的docker镜像

  • 首先拉取centos镜像

    docker pull centos:7
    
  • 在根目录下创建文件夹mydjangodockerfile

    mkdir mydjangodockerfile
    cd mydjangodockerfile
    
  • 下载django-2.1.7 和阿里云扩展源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
    
  • 此时mydjangodockerfile下文件应如下

  • 编写Dockerfile文件

    FROM centos:7#继承centos
    MAINTAINER xujunkai<xujunkaipy@163.com>#作者信息
    
    ADD epel.repo /etc/yum.repos.d#将epel源文件,拷贝到容器/etc/yum.repos.d,ADD相比COPY,还带压缩解压
    
    RUN yum update -y#执行yum更新
    RUN yum install -y python36#下载python36
    RUN yum install -y python36-pip#下载pip工具
    RUN pip3 install setuptools#下载setuptools
    ADD Django-2.1.7.tar.gz /opt/#将当前tar.gz包解压并复制到容器opt下
    
    WORKDIR /opt/#更换工作目录
    RUN mv Django-2.1.7 django#将解压后的Django-2.1.7移动到django文件夹下
    
    WORKDIR /opt/django
    RUN python3 setup.py install#执行安装命令
    
    WORKDIR /opt
    RUN django-admin.py startproject mypro#创建django项目mypro
    ADD run.sh /opt/mypro/run.sh#将run.sh拷贝容器内
    RUN sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['\*'\]/g" /opt/mypro/mypro/settings.py#更改ALLOWED_HOSTS让其他IP能访问
    
    WORKDIR /opt/mypro
    RUN chmod 777 run.sh
    
    EXPOSE 8000#暴露端口8000
    CMD ["/bin/sh","run.sh"]#执行run.sh
    
  • 编写run.sh,django启动命令

    python3 manage.py runserver 0.0.0.0:8000
    
  • 构建镜像

    docker build -t xjk/django-217 .
    #执行此命令要在Dockerfile所在目录下,别忘记点,表示当前目录
    
  • 启动容器

    #端口映射
    docker run -d -p 8888:8000 xjk/django-217
    
  • 查看容器状态:docker ps

  • 使用交互式进入容器

    docker exec -it 容器ID /bin/bash
    
  • ps -ef 也可查看

  • 打开浏览器访问

posted @   是阿凯啊  阅读(603)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示