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 也可查看

  • 打开浏览器访问

原文地址:https://www.cnblogs.com/xujunkai/p/13031852.html