使用Dockerfile封裝Django鏡像


部署過程

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 參數  指定地址和文件名   鏡像名

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM