用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值