用Docker封装一个web应用(Django)
一.复用以前一个封装了SSH的镜像,如果没有封装SSH,可以使用自己的镜像或参考我以前博文:叫板OpenStack:用Docker实现私有云 的前五步
接下来便是正题.
二.部署过程
1.查看镜像
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu sshd f61f7079461c 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..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..tar.gz /opt/ WORKDIR /opt/
RUN mv Django-1.7. 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 run.sh
EXPOSE
CMD ["/bin/sh","run.sh"]
4.编写run.sh
python manage.py runserver 0.0.0.0:
三.开始构建
root@iZ2893wjzgyZ:/home/docker# sudo docker build -t ubuntu:web .
构建完成后,可以看到生成一个新镜像:


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

四.此时后台启动镜像,并把8080端口映射出来:
root@iZ2893wjzgyZ:/home/docker# docker run -d -p : 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
用Docker封装一个web应用(Django)的更多相关文章
- Docker 运行一个Web应用
使用 docker 构建一个 web 应用程序. 我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用 参数说明: -d:让容器在后台运行. -P:将容器内部使用的网 ...
- 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?
本文作者 Jacek Laskowski 拥有近20年的应用程序开发经验,现 CodiLime 的软件开发团队 Leader,曾从 IBM 取得多种资格认证.在这篇博文中,Jacek 分享了 Wars ...
- 如何使用Docker部署一个Go Web应用程序
熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...
- requests+django+bs4实现一个web微信的功能
前言: 今天我们利用requests模块+django+bs4浏览器来实现一个web微信的基本功能,主要实现的功能如下 a.实现返回二维码 b.实现手机扫码后二维码变成变成头像 c.实现手机点击登陆成 ...
- Anaconda+django写出第一个web app(十)
今天继续学习外键的使用. 当我们有了category.series和很多tutorials时,我们查看某个tutorial,可能需要这样的路径http://127.0.0.1:8000/categor ...
- Anaconda+django写出第一个web app(一)
在安装好Anaconda和django之后,我们就可以开始创建自己的第一个Web app,那么首先创建一个空文件夹,之后创建的文件都在这个文件夹内. 启动命令行进入此文件夹内,可以先通过如下命令查看一 ...
- 【云计算】Docker集中化web界面管理平台shipyard
Docker集中化web界面管理平台shipyard docker shipyard seanlook 2015年01月05日发布 ...
- 使用 Docker 搭建 Java Web 运行环境
黄勇的博客 Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐 ...
- 转:使用 Docker 搭建 Java Web 运行环境
原文来自于:http://www.codeceo.com/article/docker-java-web-runtime.html Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都 ...
随机推荐
- 2015年Java开发岗位面试题归类
一.Java基础 1. String类为什么是final的. 2. HashMap的源码,实现原理,底层结构. 3. 说说你知道的几个Java集合类:list.set.queue.map实现类咯... ...
- Android 中的编码与解码
前言:今天遇到一个问题,一个用户在登录的时候,出现登录失败.但是其他用户登录都是正常的,经过调试发现登录失败的用户的密码中有两个特殊字符: * .# . 特殊符号在提交表单的时候,出现了编码不一样的 ...
- Android 在C代码中调用logcat
本文给<Android java传递int类型数组给C>中添加C代码中调用logcat的功能 Android.mk文件增加以下内容 LOCAL_LDLIBS += -llog C代码中增加 ...
- iOS不同IDS说明
1.Vindor标识符 identifierForVendor 一个英文字符串,对于相同的产品商(这里指com.zhang.*,也就是前缀一样),其唯一的标识设备. * 这个值对于相同的产品商在相同 ...
- iOS开发常用小技巧记录(持续更新)
以下问题都是自己在项目中遇到的,解决问题的方法肯定有多种,我所列举的不一定就是最好的解决办法.如有问题欢迎大家指正,补充,交流. 解决同时按两个按钮进两个view的问题.[button setExcl ...
- 安卓--selector简单使用
selector ---选择器 在App的使用中经常能看到selector的身影 如:一个按键看上去白色或者其它颜色,可能是一张图片 按下去又显示其它的颜色或者另外一张图片 这里使用shape配合使用 ...
- OC self = [super init] , 点语法 , @property
OC self = [super init] , 点语法 , @property 构造方法为啥这么写? self = [super init]; [super init] 的结果可能有三种: 第一种: ...
- Web性能--TCP的构成
前言:阅读<Web性能权威指南>摘录笔记.在这本书开篇就读到第一句话令人印象深刻: "合格的开发者知道怎么做,而优秀的开发者知道为什么那么做". 内容大纲: 1.因特网 ...
- 关于jquery跨域请求方法
转载 http://www.cnblogs.com/benwu/archive/2012/12/25/2832981.html 项目中关于ajax jsonp的使用, 出现了问题:可以成功获得请求结果 ...
- 同步时间linux
针对对时间要求精确度高的服务器 1.安装时间服务器yum install ntp 2.同步时间ntpdate time.nist.gov 3.设置计划任务每隔10分钟同步一次 */10 * * * * ...