用Docker封裝一個web應用(Django)


一.復用以前一個封裝了SSH的鏡像,如果沒有封裝SSH,可以使用自己的鏡像或參考我以前博文:叫板OpenStack:用Docker實現私有雲 的前五步

接下來便是正題.

二.部署過程

1.查看鏡像

REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu                    sshd                f61f7079461c        25 hours ago        666.3 MB

2.在/home下建立了docker目錄,下載一個django-1.7的源碼包,touch dockerfile和run.sh,其中run.sh是用來執行Django的bash腳本,Dockerfile即為自動build python

的文件,此文中的核心也是Dockerfile.

root@iZ2893wjzgyZ:/home/docker# ls
Django-1.7.4.tar.gz  Dockerfile  run.sh

3.編寫Dockerfile

FROM ubuntu:sshd
MAINTAINER Alex

RUN apt-get update
RUN apt-get install -y -q python-pip
RUN pip install setuptools
ADD Django-1.7.4.tar.gz /opt/

WORKDIR /opt/
RUN mv Django-1.7.4 django

WORKDIR /opt/django
RUN python setup.py install

WORKDIR /opt
RUN django-admin.py startproject mysite

ADD run.sh /opt/mysite/run.sh
WORKDIR /opt/mysite
RUN chmod 777 run.sh
EXPOSE 8080
CMD ["/bin/sh","run.sh"]               

4.編寫run.sh

python manage.py runserver 0.0.0.0:8080

三.開始構建

root@iZ2893wjzgyZ:/home/docker# sudo docker build -t ubuntu:web .

 

構建完成后,可以看到生成一個新鏡像:

和一個暴露了8080端口的新容器:

四.此時后台啟動鏡像,並把8080端口映射出來:

root@iZ2893wjzgyZ:/home/docker# docker run -d -p 8080:8080  ubuntu:web

netstat查看一下宿主機的8080端口

五.使用和調試

執行完以上四個步驟,已經可以使用這個封裝了django的鏡像,接下來查看一下登陸界面

如果需要查看log日志,可以使用如下命令,-f代表持續打印:

#docker logs -f container_id 

如果需要進入容器修改web內容,可以通過ssh連接進入,前文已有類似說明,在此不做贅述。

 六.導出鏡像

root@iZ2893wjzgyZ:/home/docker# docker save -o ubuntu14.04_djangodemo.tar.gz ubuntu:web

 

 

 


免責聲明!

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



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