设为首页 收藏本站
查看: 1569|回复: 0

[经验分享] JavaEE&Docker 容器示例

[复制链接]

尚未签到

发表于 2015-4-18 06:00:09 | 显示全部楼层 |阅读模式
  

DSC0000.png
  准备:jboss、jdk、一个javaee的war包、Dockerfile
  注:jboss和jdk可以不用提前准备好,在命令中wget也可以,因为我恰好有,就直接复制了
  Dockerfile内容:


  #admln 20150120
FROM ubuntu:14.04
MAINTAINER admln
RUN mkdir /usr/jboss
COPY wildfly-8.2.0.Final /usr/jboss/
COPY JavaEEDocker.war /usr/jboss/standalone/deployments/
RUN mkdir /usr/java/
COPY jdk-7u71-linux-x64.tar.gz /usr/java/
WORKDIR /usr/java/
RUN tar -zxf jdk-7u71-linux-x64.tar.gz
RUN update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_71/bin
/javac 100
RUN update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_71/bin/j
ava 100
RUN update-alternatives --display java
RUN java -version
EXPOSE 8080 9990
CMD ["/usr/jboss/bin/standalone.sh", "-c", "standalone-full.xml", "-b", "0.0.0.0
"]
  构建:



sudo docker build -t="javaee_docker_jboss" .
  构建过程:


  Sending build context to Docker daemon 422.1 MB
Sending build context to Docker daemon
Step 0 : FROM ubuntu:14.04
---> b39b81afc8ca
Step 1 : MAINTAINER admln
---> Using cache
---> c6410b257abc
Step 2 : RUN mkdir /usr/jboss
---> Running in faae0476fa09
---> bee1d5851e62
Removing intermediate container faae0476fa09
Step 3 : COPY wildfly-8.2.0.Final /usr/jboss/
---> 8d40f390a11e
Removing intermediate container a7a4174c0e79
Step 4 : COPY JavaEEDocker.war /usr/jboss/standalone/deployments/
---> 1335bd7ad129
Removing intermediate container 589fa30b1311
Step 5 : RUN mkdir /usr/java/
---> Running in ac21536064f7
---> cb4703bc284c
Removing intermediate container ac21536064f7
Step 6 : COPY jdk-7u71-linux-x64.tar.gz /usr/java/
---> 35a31c2bc140
Removing intermediate container f4c26050e511
Step 7 : WORKDIR /usr/java/
---> Running in 1217154d1cca
---> a17af238fed9
Removing intermediate container 1217154d1cca
Step 8 : RUN tar -zxf jdk-7u71-linux-x64.tar.gz
---> Running in dfb046ddb86d
---> ea154f6f3896
Removing intermediate container dfb046ddb86d
Step 9 : RUN update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_71/bin/javac 100
---> Running in ff061540aae3
update-alternatives: using /usr/java/jdk1.7.0_71/bin/javac to provide /usr/bin/javac (javac) in auto mode
---> c3f4118943cc
Removing intermediate container ff061540aae3
Step 10 : RUN update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_71/bin/java 100
---> Running in 764aa09ab43f
update-alternatives: using /usr/java/jdk1.7.0_71/bin/java to provide /usr/bin/java (java) in auto mode
---> fddc132f2010
Removing intermediate container 764aa09ab43f
Step 11 : RUN update-alternatives --display java
---> Running in dd123440d778
java - auto mode
  link currently points to /usr/java/jdk1.7.0_71/bin/java
/usr/java/jdk1.7.0_71/bin/java - priority 100
Current 'best' version is '/usr/java/jdk1.7.0_71/bin/java'.
---> 0951d9f62f99
Removing intermediate container dd123440d778
Step 12 : RUN java -version
---> Running in 839afe5e2276
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
---> f51af884a45f
Removing intermediate container 839afe5e2276
Step 13 : EXPOSE 8080 9990
---> Running in ed736e99366e
---> bce05a7bdb61
Removing intermediate container ed736e99366e
Step 14 : CMD /usr/jboss/bin/standalone.sh -c standalone-full.xml -b 0.0.0.0
---> Running in fea176d2760b
---> 947def6b3995
Removing intermediate container fea176d2760b
Successfully built 947def6b3995
DSC0001.png
  启动容器



sudo docker run -p 8180:8080 javaee_docker_jboss
DSC0002.png
  测试:
DSC0003.png

  tomcat版:
DSC0004.png
  Dockerfile:



#admln 20150120
FROM ubuntu:14.04
MAINTAINER admln
RUN mkdir /usr/tomcat
COPY apache-tomcat-7.0.57.tar.gz /usr/tomcat/
WORKDIR /usr/tomcat/
RUN tar zxf apache-tomcat-7.0.57.tar.gz
COPY JavaEEDocker.war /usr/tomcat/apache-tomcat-7.0.57/webapps/
RUN mkdir /usr/java/
COPY jdk-7u71-linux-x64.tar.gz /usr/java/
WORKDIR /usr/java/
RUN tar -zxf jdk-7u71-linux-x64.tar.gz
RUN update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_71/bin
/javac 100
RUN update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_71/bin/j
ava 100
RUN update-alternatives --display java
RUN java -version
EXPOSE 8080 9990
CMD /usr/tomcat/apache-tomcat-7.0.57/bin/startup.sh && tail -f /usr/tomcat/apach
e-tomcat-7.0.57/logs/catalina.out
  构建启动... ...
  测试:
DSC0005.png
  tomcat和JBoss有点不一样,JBoss启动后默认一直进行的,而tomcat启动后终端就运行完了
  所以 CMD 命令中我加了一个 tail -f /usr/tomcat/apache-tomcat-7.0.57/logs/catalina.out
  保证终端一直运行。
  不过后来发现 bin/catalina.sh run 命令可以让tomcat启动并且终端不退出
  所以比较推荐的Dockerfile写法是:



... ...
CMD /usr/tomcat/apache-tomcat-7.0.57/bin/catalina.sh run
DSC0006.png
  

  tomcat 的两三次失败带来的另一个深入理解是 docker 的层级关系
  我修改了Dockerfile 再已同样的名字构建时,由于只修改了第十六步的内容,所以之前的都使用已经构建好的,只是重新构建第十六步那一层(layer),然后把原来的镜像删除生成一个新的
  还有一个就是 docker 容器的即时性,运行完即退出,这一点和 VM 区别也很大,所以限制了 docker 的应用场景

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58178-1-1.html 上篇帖子: 一种Docker image镜像的取代方案 下篇帖子: 阿里云部署Docker(5)----管理和公布您的镜像
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表