exciting Docker

posted in: 技术 | 14 | (1366)次浏览

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

这几天才开始慢慢熟悉docker这项技术,以前只是在某个创业资讯上看到过,接触之后,才觉得这项技术很amazing,docker的官网戳这里http://docker.com。在看完docker的相关简介后,我开始学习如何使用docker。之前用过的虚拟化云服务,仅限于阿里云,而且用的是阿里云的ECS,即虚拟机。但是如果所有的web应用都采用虚拟机的话,会显得大材小用或者臃肿不堪,这个时候docker是一个不错的选择。我在之前一篇文章中写过如何搭建个人博客,现在你想搭建个人网站的话,我一定推荐你使用docker,而不是购买主机或者空间等等。关于docker的理论知识,可以直接看官网。

docker-爱上走路
docker-爱上走路

docker的应用有很多,本文只介绍如何使用基于docker的云服务。在介绍之前首先得介绍另一个网站http://daocloud.io,daocloud.io的核心业务是提供基于docker的云服务,类似于阿里云。

DaoCloud 是业界领先的企业级容器云平台和解决方案提供商,致力于以 Docker 为代表的容器技术,为企业打造面向下一代互联网应用的交付和运维平台,帮助客户实现云端持续创新。DaoCloud 采用混合云模式,以云端 SaaS 化容器管理平台,对接各类主机资源,构建跨云跨网的容器主机资源池,提供全流程标准化的应用持续集成、镜像构建、发布管理和容器运维服务。 DaoCloud 在开发运维联动、渐进式混合云构建、大规模高并发集群、微服务架构设计、分布式应用运维等场景拥有丰富经验和成功案例。DaoCloud 总部位于中国上海,并在北京设有分支机构。

下面开始介绍用daocloud来发布github上的项目,以我的项目【人才信息管理系统】(以下简称HRMS)为例来说明,对了这种云服务有免费额度的哦。首先说一下大体方向,首先将项目编译然后运行在tomcat容器中,然后添加数据库服务。

1.登录github,并创建HRMS项目https://github.com/aishangzoulu/HRMS,将编译好的HRMS文件上传到/hrms(可自行指定)中,在该目录中新建Dockerfile文件;

2.为HRMS项目编写docker镜像文件Dockerfile,Dockerfile的书写参考官网,HRMS的Dockerfile如下:

# VERSION 0.0.1
# 默认java长期支持版本
FROM tifayuki/java:7
# 签名啦
MAINTAINER raylew “aishangzoulu@gmail.com”

RUN apt-get update && \
apt-get install -yq –no-install-recommends wget pwgen ca-certificates && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

ENV TOMCAT_MAJOR_VERSION 7
ENV TOMCAT_MINOR_VERSION 7.0.55
ENV CATALINA_HOME /tomcat

# INSTALL TOMCAT
RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz && \
wget -qO- https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz.md5 | md5sum -c – && \
tar zxf apache-tomcat-*.tar.gz && \
rm apache-tomcat-*.tar.gz && \
mv apache-tomcat* tomcat

# Add hrms stuff into tomcat webapps
COPY . /tomcat/webapps/hrms

ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh
ADD run.sh /run.sh
RUN chmod +x /*.sh

EXPOSE 8080
CMD [“/run.sh”]

3.通过Dockerfile构建镜像文件,该镜像文件将运行在DaoCloud提供的宿主机器上;

4.在DaoCloud中添加数据库服务(相当于http服务器和数据库服务器分离),用phpMyAdmin导入你的数据库文件,然后将HRMS的数据库连接参数设置为DaoCloud给定的数据库连接参数。

至此,HRMS已经可以访问,访问地址为http://aishangzoulu-hrms.daoapp.io。DaoCloud同时支持绑定自由域名,如可以将HRMS绑定到我的博客的二级域名下,如http://hrms.raylew.info

(完)