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 也可查看
-
打开浏览器访问