您的位置:首页 > 运维架构 > Docker

基于CentOS7将Java应用生成docker镜像

2017-10-16 10:51 633 查看
上次总结了将javaweb项目生成docker镜像,但是在实际生产中,一个完整的系统不只是页面项目,还包括了java应用,如esb实例,下面进行一个概述总结,关于docker环境的搭建和一些docker基本操作命令,这里就不赘述了,可以参考上一篇博客:

http://blog.csdn.net/u010564366/article/details/78216946

二 总体思路

拉取centos基础镜像->生成容器->在容器中搭建java环境->

将java项目打成可执行jar包->将jar包放到容器中->新建脚本在容器中启动应用->映射容器端口->在外部访问容器中的服务

三 详细操作

1,拉取centos基础镜像,搭建java环境,不再赘述,请参考上篇博客

2,在应用中新建目录(文件夹)

# mkdir esb
# cd esb
# mkdir lib
# mkdir bin


3,将准备好的可执行jar文件拷贝到容器中的/esb/lib目录下

# docker cp /root/esb.jar 容器ID:/esb/lib


4,进入容器

# docker exec -it 容器ID /bin/bash


5,编写启动脚本(这里写个简单的启动脚本,可根据实际完善)

# cd esb/bin
# touch start_esb.sh
# vi start_esb.sh
然后加入如下内容
#!/bin/sh
java -jar ../lib/esb.jar &
echo "start aiesb success..."
保存退出
对刚刚新建的脚本文档进行赋权
# chmod 755 esb.jar


6,至此,基本工作准备好了,生成镜像esb_image:0.1

# docker commit 容器ID esb_image:0.1


7,基于新生成的镜像生成容器并映射好宿主主机到容器的端口

ps:这里推荐博客http://lib.csdn.net/article/docker/1014

# docker run -it -p 宿主机端口:容器内服务端口 镜像名:版本 /bin/bash


8,启动服务

# cd esb/bin
# ./start_esb.sh


9,退出容器,并访问服务

例如在容器化之前访问:
127.0.0.1:8888/oppf
映射后
127.0.0.1:99999/oppf


以上,有不足的地方,在后面学习中完善,比如采用dockerfile来启动容器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: