1.容器化一个简单的java应用程序
(1).安装和配置JDK
创建一个文件夹且进入(用于存放jdk),这里为java文件夹
本教程使用的是虚拟机下的centos,可以使用wegt命令下载文件,也可以从主机上面传输文件到centos内,所以这里我们选择后者。
查看主机的ip:
这里我们的ip为192.168.32.130
在FileZilla中使用此ip和用户名连接centos:
这里我们使用root用户:
连接好以后就可以在FileZilla中上传主机的文件到centos内指定的目录中了。
使用tar xzf命令解压后可以得到:
配置环境变量:
编辑 /etc/profile
vim /etc/profile
在文件内添加如下配置:
保存后刷新一下文件:
source /etc/profile
这样环境配置就完成了,不妨看一下是否配置成功:
java --version
得到反馈,说明我们的jdk配置成功了
(2)安装Maven软件:
进入local文件夹
这里我们还是先在主机上下载好文件然后再发送到centos,我们选择maven3.6.3
上传后并且解压:
继续修改/etc/profile
在底部添加如下配置:
查看maven是否安装正确:
mvn -v
得到反馈,安装成功!
(3)创建一个简单的Java应用程序:
创建一个文件夹用于存放java应用程序,这里我们创建ch06,进入
使用如下命令构建一个Java项目:
mvn archetype:generate -DgroupId=org.examples.java -DartifactId=helloworld -DinteractiveMode=false
构建好之后会生成一个helloworld文件夹 我们直接进入
然后使用如下命令来构建项目
mvn package
构建完成后运行所生成的Java类:
java -cp target/helloworld-1.0-SNAPSHOT.jar org.examples.java.App
(4)下载和运行Java镜像
使用如下命令以交互的方式运行OpenJDK容器:
docker container run -it openjdk:8
并且在容器内查看java版本
java --version
成功得到结果,exit退出容器
(5)将Java应用程序打包为镜像并启动容器运行该程序
创建Dockerfile文件并且添加如下内容:
基于该Dockerfile构建镜像:
docker images build -t hello-java:latest .
构建成功后,基于该镜像运行容器
docker run --rm hello-java:latest /bin/bash
成功得到结果!
2.使用Docker Maven插件打包并运行Java应用程序
(1)获取一个现成的java项目
这里大家可以自己做一个也可以从github上面获取一个
这里我们直接获取一个就好了
git clone https://github.com/arun-gupta/docker-java-sample
没有安装git的话需要先安装git
yum -y install git
(2)运行mvn命令创建一个Docker镜像:
mvn -f docker-java-sample/pom.xml package -Pdocker
创建成功,查看刚刚创建的镜像:
dokcer image ls | grep hellojava
通过mvn命令基于该镜像运行容器:
mvn -f docker-java-sample/pom.xml install -Pdocker
得到输出结果Hello World!
(3)使用Tomcat的官方镜像部署War应用程序
(1)使用Tomcat官方镜像的管理工具发布.War包
创建一个tomcat-basic文件夹且进入:
启动一个tomcat:8.0容器
访问http://127.0.0.1:8888
成功进入到Tomcat主页
退出容器
创建conf目录:
在conf下创建且编辑tomcat-users.xml文件:
nano conf/tomcat-users.xml
添加如下配置:
重新启动一个tomcat:8.0容器 并且将主机上的目录加载到容器内
访问http://127.0.0.1:8888 进入tomcat主页面
进入Manager APP发布一个javaweb项目
输入刚刚配置的用户名和密码后即可登录
这里分别是admin和tomcat
进入Manager App页面:
滑到下方的Deploy区域 发布一个javaweb项目的.war包
可以从主机上选择并且传入到centos内然后选择该文件即可
选择Deploy发布!
在上方的Application Manager区域可以看见已经发布的应用程序
访问http:127.0.0.1:8888/hello-world
得到了我的javaweb项目的一个主界面
非常简单 只有几行文字(中文不显示的原因是因为没有中文语言包)
(2)将.war包复制到容器中进行发布
将主机的存放javaweb项目war包的目录中的文件复制到tomcat容器内的webapps目录下
启动容器后tomcat就会自动解压webapps内的文件并且发布
访问http://127.0.0.1:8888/hello-world/
也成功得到结果
(3)将.war包所在目录绑定挂载到容器中进行发布
也可以进入存放War包的目录下,将该目录挂载绑定到容器的webapps目录下:
访问http://127.0.0.1:8888/hello-world/
也能够成功得到结果:
(4)基于Tomcat官方镜像加入.war包生成新的镜像:
编写一个Dockerfile文件:
加入如下内容 其中第三行表示将主机上的war包添加到容器内的webapps目录下
使用docker build构建镜像
根据创建好的镜像运行容器
访问http://127.0.0.1:8888/hello-world/
成功得到结果:
以上的几种方法都可以用于容器化Javaweb的项目