Change Dir

先知cd——热爱生活是一切艺术的开始

统计

留言簿(18)

积分与排名

“牛”们的博客

各个公司技术

我的链接

淘宝技术

阅读排行榜

评论排行榜

docker初体验之docker-tomcat

docker已经是现在最热的容器技术,最近也去体验了一下,在daocloud注册了一个账号,并开始本机实战docker。daocloud免费有两个容器可用,体验送T恤,邀请送书,这里我分享一个daocloud的邀请码https://account.daocloud.io/signup?invite_code=mxeq2jkmcur37vz6ven8,daocloud是非常棒的容器云平台,使用体验好,问题响应也及时,绑定微信还送一个额外容器。

好吧,停止广告,daocloud再好,也不给我发钱,真是的。

这里就介绍一下我最简单的一个docker-tomcat容器。

首先在我的linux机器上安装docker

安装教程特别多,随便可以找到,我的本地环境是64位的centos7.0,所以安装就被简化为:

Sudo yum install docker

这么一句话了。

docker的核心思想是everything is containerdocker运行的就是一个个的容器,而容器是用户完全自定义的镜像,我个人认为最灵活的就是写一个dockerfile(我理解就算一个镜像了),然后把它build为镜像并run,一个可用的容器环境就完全起来了。

步骤:

1,创建一个项目,最好在git

2,写Dockerfile文件,描述你的镜像

3docker build

4docker run

这样就好了。

于是,以我个人的项目为例:

1,创建项目:https://github.com/changedi/mydocker

2,编辑Dockerfilehttps://github.com/changedi/mydocker/blob/master/Dockerfile

3,在本地项目中运行docker build <image_name> .build一个自定义名字的镜像

4,启动这个镜像容器:docker run -d -p 80:80 <image_name>

这样,这个镜像就好了,服务也起来了,后续可以通过docker ps来查看启动的镜像,通过docker stop来停止容器。

 

我这里解释一下我的Dockerfile

  1 # Using a compact OS

 2 FROM ubuntu:13.10 
 3 
 4 MAINTAINER changedi <jysoftware@gmail.com> 
 5 
 6 # update source  
 7 RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe"> /etc/apt/sources.list  
 8 RUN apt-get update  
 9   
10 # Install curl  
11 RUN apt-get -y install curl  
12   
13 # Install JDK 7  
14 RUN cd /tmp &&  curl -L 'http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz' -H 'Cookie: oraclelicense=accept-securebackup-cookie; gpw_e24=Dockerfile' | tar -xz  
15 RUN mkdir -p /usr/lib/jvm  
16 RUN mv /tmp/jdk1.7.0_65/ /usr/lib/jvm/java-7-oracle/  
17   
18 # Set Oracle JDK 7 as default Java  
19 RUN update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-oracle/bin/java 300     
20 RUN update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-oracle/bin/javac 300  
21   
22 ENV JAVA_HOME /usr/lib/jvm/java-7-oracle/  
23   
24 # Install tomcat7  
25 RUN cd /tmp && curl -L 'http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.tar.gz' | tar -xz  
26 RUN mv /tmp/apache-tomcat-7.0.8/ /opt/tomcat7/  
27   
28 ENV CATALINA_HOME /opt/tomcat7  
29 ENV PATH $PATH:$CATALINA_HOME/bin:$JAVA_HOME/bin  
30 
31 # ADD ace-java-demo-1.0.0.war /tmp/myapp/
32 # RUN cd /tmp/myapp && jar -xvf ace-java-demo-1.0.0.war
33 # RUN rm -rf ace-java-demo-1.0.0.war
34 # RUN cp -R /tmp/myapp /opt/tomcat7/webapps/myapp
35 # RUN mkdir /opt/tomcat7/webapps/myapp
36 RUN rm -rf /opt/tomcat7/webapps/ROOT/*
37 ADD ace-java-demo-1.0.0.war /opt/tomcat7/webapps/ROOT/ace-java-demo-1.0.0.war
38 RUN cd /opt/tomcat7/webapps/ROOT/ && jar -xvf ace-java-demo-1.0.0.war
39  
40 ADD tomcat-users.xml /opt/tomcat7/conf/tomcat-users.xml
41 # ADD server.xml /opt/tomcat7/conf/server.xml
42 RUN cat /opt/tomcat7/conf/serv*.xml
43 RUN ls /opt/tomcat7/conf
44 RUN ls /opt/tomcat7/webapps
45 
46 ADD tomcat7.sh /etc/init.d/tomcat7  
47 RUN chmod 755 /etc/init.d/tomcat7  
48   
49 # install nginx
50 RUN apt-get install nginx -y
51 ADD ./nginx/nginx-conf /etc/nginx/conf.d
52 
53 # Expose ports
54 EXPOSE 80
55 
56 
57 # Define default command.  
58 ENTRYPOINT service tomcat7 start && tail -f /opt/tomcat7/logs/catalina.out

主要做几件事:

1,拉个操作系统:这里是Ubuntu

2,装工具:curljdktomcatnginx,配置环境变量,配置tomcat,配置nginxtomcatnginx的配置都是本地搞好,直接add

3,部署应用(自己的war包),这里我直接利用dockerADD操作,把git项目中的文件直接add到容器中

 

参考资料:

1docker安装 http://www.linuxidc.com/Linux/2014-12/110034.htm

2dockerfile编写 http://blog.csdn.net/we_shell/article/details/38445979

posted on 2015-09-14 20:05 changedi 阅读(7906) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: