步骤一:在主机下载安装docker,参照Centos7上安装docker

步骤二:下载Linux版本的JDK1.6和Tomcat6.0(其他项目若依赖其他版本的运行环境可选择另外版本下载),通过secureCRT将下载压缩包传递到Linux主机中,

指令如下:put源文件路径(putd://uploads/linuxV/apache-tomcat-6.0.37.tar.gz)该文件将默认传递到Linux主机下的“~”目录下

引申:从Linux主机传递文件到Windows中的指令为get源文件的绝对路径(get/home/sun/Dockerfile)源文件将默认传递到Windows下的“C:UsersAdministratorDocuments”目录下

步骤三:将下载好的JDK和Tomcat传递到Linux后docker部署java应用,复制到指定的文件夹(如:/home/sun/),并将其解压,

常用解压指令如下:

tar-xzvf文件名(解压tar.gz);tar-xvf文件名(解压tar文件)

注意:若为bin文件,则需赋于解压权限,指令为:chmodu+x文件名再进行解压指令:./文件名(解压bin)

解压后查看/home/sun/如下:

docker部署java应用_Linux JDK1.6下载与安装_Centos7 Docker安装教程

步骤四:编撰Dockerfile

在当前路径(/home/sun/)下创建文件Dockerfile(touchDockerfile),vimDockerfile,编撰具体内容,如下

FROM centos
MAINTAINER 945130012@qq.com
#切换镜像目录,进入/usr目录
WORKDIR /usr
#在/usr/下创建jdk目录,用来存放jdk文件
RUN mkdir jdk
#在/usr/下创建tomcat目录,用来存放tomcat
RUN mkdir tomcat
#将宿主机的jdk目录下的文件拷至镜像的/usr/jdk目录下
ADD jdk1.6.0_45 /usr/jdk/

docker部署java应用_Centos7 Docker安装教程_Linux JDK1.6下载与安装

#将宿主机的tomcat目录下的文件拷至镜像的/usr/tomcat目录下
ADD apache-tomcat-6.0.37 /usr/tomcat/ #设置环境变量 ENV JAVA_HOME=/usr/jdk ENV JRE_HOME=$JAVA_HOME/jre ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH=/sbin:$JAVA_HOME/bin:$PATH #公开端口 EXPOSE 8080 #设置启动命令

Linux JDK1.6下载与安装_Centos7 Docker安装教程_docker部署java应用

ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]

步骤五:编译Dockerfile,指令如下:

docker build -t sbindocker/hello .

注意:考虑到先前docker库房的镜像命名格式为:docker登陆名/镜像名,所以在这儿直接根据格式起名,免得前面dockerpush出问题

执行结果

[root@VM_0_4_centos sun]# docker build -t sbindocker/v1.1 .
Sending build context to Docker daemon  345.2MB
Step 1/13 : FROM centos
 ---> 9f38484d220f
Step 2/13 : MAINTAINER 945130012@qq.com
 ---> Running in 229e0298fae1
Removing intermediate container 229e0298fae1
 ---> 35f3dfe84efb
Step 3/13 : WORKDIR /usr
Removing intermediate container 93a2a3af2550
 ---> 4cce0e422b68
Step 4/13 : RUN mkdir jdk

docker部署java应用_Centos7 Docker安装教程_Linux JDK1.6下载与安装

---> Running in 2d9af2651c7b Removing intermediate container 2d9af2651c7b ---> 8734ad8e6085 Step
5/13 : RUN mkdir tomcat ---> Running in 6cc15095685e Removing intermediate container 6cc15095685e ---> 9d1afb700a70 Step 6/13 : ADD jdk1.6.0_45 /usr/jdk/ ---> 9f82dfde99c0 Step 7/13 : ADD apache-tomcat-6.0.37 /usr/tomcat/ ---> 91e803774d96 Step 8/13 : ENV JAVA_HOME=/usr/jdk

Linux JDK1.6下载与安装_docker部署java应用_Centos7 Docker安装教程

---> Running in 164fba051657 Removing intermediate container 164fba051657 ---> e4fdbdf1aa3d Step
9/13 : ENV JRE_HOME=$JAVA_HOME/jre ---> Running in ed24e20cb48c Removing intermediate container ed24e20cb48c ---> 264978fcda87 Step 10/13 : ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ---> Running in 0705f2deab04 Removing intermediate container 0705f2deab04 ---> 6671fe33cdb4 Step 11/13 : ENV PATH=/sbin:$JAVA_HOME/bin:$PATH ---> Running in b4c81dde0f4b

Linux JDK1.6下载与安装_docker部署java应用_Centos7 Docker安装教程

Removing intermediate container b4c81dde0f4b ---> ca4640d5636e Step
12/13 : EXPOSE 8080 ---> Running in ba86dfe44a41 Removing intermediate container ba86dfe44a41 ---> 4a18dd932885 Step 13/13 : ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"] ---> Running in e82489de63d1 Removing intermediate container e82489de63d1 ---> ede60ca4f52c Successfully built ede60ca4f52c Successfully tagged sbindocker/v1.1:latest

dockerbuild

步骤六:在eclipse/MyEclipse中打包war包(war包中联接数据需为Linux宿主机的IP:Port),在/home/sun/下创建目录webapps,并将war包传到到该目录下。

Centos7 Docker安装教程_Linux JDK1.6下载与安装_docker部署java应用

步骤七:打包刚刚建立好的镜像,并将/home/sun/webapps/businessManager.war挂载到容器的/usr/tomcat/webapps/businessManager.war中。指令如下:

docker run --name hello -p 8080:8080 -v /home/sun/webapps/businessManager.war:/usr/tomcat/webapps/businessManager -d sbindocker/hello

步骤八:输入dockerps指令、netstat-nultp、dockerlogs--tail100-fhello指令查看容器状态,端口占用情况和应用运行日志

至此linux查看进程,即完成web项目在docker容器下的布署docker部署java应用,在docker中创建好MySQL容器后linux论坛,即可在浏览器输入Linux主机的IP:8080/businessManager即可访问项目

注意:不仅java文件,任何在docker容器中可以查看到的真实存在的文件内容都可以直接在容器中进行更改(虽然是lib下的jar包都行),改完后须要重启容器(dockerrestart容器ID/名称)(适用于小范围改动),若整个项目进行了较大的改动,只需将打包好的war包重新拷贝到Linux主机的/home/sun/webapps/下即可,无需重启容器。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复