部署過程
1.查看鏡像
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 9f38484d220f 3 weeks ago 202MB
2.在/opt下建立了docker目錄,下載一個django-2.1.7的源碼包,
touch Dockerfile和run.sh,其中run.sh是用來執行Django的bash腳本,Dockerfile即為自動build python的文件,此文中的核心也是Dockerfile.
下載阿里雲擴展源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
cp /etc/yum.repos.d/CentOS-Base.repo /opt/docker
3.編寫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"] # 容器啟動時默認執行的命令

FROM centos MAINTAINER TigerLee ADD CentOS-Base.repo /etc/yum.repos.d ADD 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/ 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"]
4.編寫run.sh
python3 manage.py runserver 0.0.0.0:8000
開始構建
[root@tiger docker]# sudo docker build -t tiger/django-217 .
構建完成后,可以看到生成一個新鏡像:
此時后台啟動鏡像,並把8000端口映射出來
[root@tiger docker]# docker run -d -p 9090:8000 tiger/django-217
查看容器運行狀態:
使用交互式模式進入容器,再使用ps -ef查看運行的進程
[root@tiger docker]# docker exec -it e0d /bin/bash [root@e0d0a2164341 qishidj]# ps -ef
使用和調試
執行完以上四個步驟,已經可以使用這個封裝了django的鏡像,接下來查看一下登陸界面
如果需要查看log日志,可以使用如下命令,-f代表持續打印:
docker logs -f container_id
如果需要進入容器修改web內容,可以通過docker exec命令進入,前文已有類似說明,不多說。
導出鏡像
[root@tiger docker]# docker save -o centos_django217.tar.gz tiger/django-217 -o 參數 指定地址和文件名 鏡像名