1.在/opt下建立了docker目录,下载一个django-2.1.7的源码包,
touch Dockerfile和run.sh,其中run.sh是用来执行Django的bash脚本,Dockerfile即为自动build python的文件,此文中的核心也是Dockerfile.
下载阿里云扩展源epel.repo文件,也放在此目录 (注:下载速度和网速有关)
[root@izbp19kniw9k2ljqdjmld5z ~]# cd /opt # 切到、opt文件夹
[root@izbp19kniw9k2ljqdjmld5z ~]# mkdir docker # 创建dokcer文件夹,名称可以随意创建
[root@izbp19kniw9k2ljqdjmld5z ~]# cd docker # 切到、dokcer文件夹
[root@izbp19kniw9k2ljqdjmld5z docker]# wget https://media.djangoproject.com/releases/2.1/Django-2.1.7.tar.gz #下载一个django-2.1.7的源码包
[root@izbp19kniw9k2ljqdjmld5z docker]# wget -O epel.repo http://mirrors.aliyun.com/repo/epel-7.repo # 创建epel.repo
[root@izbp19kniw9k2ljqdjmld5z docker]# cp /etc/yum.repos.d/CentOS-Base.repo /opt/docker # 创建CentOS-Base.repo
注:这张图是我已经写完 Dockerfile、run.sh两个文件,你们刚下载完成是没有这两个文件的,只会出现红色框里的文件
2.编写Dockerfile vim Dockerfile
[root@izbp19kniw9k2ljqdjmld5z docker]# vim Dockerfile
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.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 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"]
详细配置(配有注释,供参考)
FROM centos
MAINTAINER TigerLee
ADD CentOS-Base.repo /etc/yum.repos.d
ADD epel.repo /etc/yum.repos.d # 将当前目录的epel.repo文件拷贝到容器的/etc/yum.repos.d目录下
RUN yum clean all
RUN yum makecache
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目录
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 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"] # 容器启动时默认执行的命令
4.编写run.sh vim run.sh
[root@izbp19kniw9k2ljqdjmld5z docker]# vim run.sh
python3 manage.py runserver 0.0.0.0:8000
开始构建
[root@izbp19kniw9k2ljqdjmld5z docker]# sudo docker build -t tiger/django-217 .
构建完成后,可以看到生成一个新镜像:
此时后台启动镜像,并把8000端口映射出来
[root@izbp19kniw9k2ljqdjmld5z docker]# docker run -d -p 9090:8000 tiger/django-217
执行完以上步骤,已经可以使用这个封装了django的镜像,接下来查看一下登陆界面