Docker学习之旅-使用Docker部署jar包

对项目打包,生成可执行jar

我们到项目的根目录,运行mvn clean package对项目进行打包,运行之后会在target目录下生成一个xxx.jar的可执行jar文件。

制作Docker镜像

首先我们将准备的xxx.jar拷贝到我们的 Ubuntu18 机器上,拷贝的方法就不做描述了,大家各显神通吧。这里我是将我生成docker-demo-0.0.1.jar拷贝到了/var/docker/文件夹下。这里大家也不一定使用Linux机器,这里只是我用了演示,尽量符合生产环境。

编写Dockerfile

使用vi Dockerfile对文件进行编辑。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD docker-demo-0.0.1.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
 

上面命令的相关解释:

  1. 从docker仓库获取openjdk作为我们项目的容器
  2. VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/tmp
  3. 项目的docker-demo-0.0.1.jar作为app.jar添加到容器。
  4. ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向/dev/urandom 作为 Entropy Source

构建Docker镜像

我们在/var/docker/testdocker目录下,执行Docker的命令来构建镜像。

docker build -t docker-user-service:latest .

这个命令就是使用Dockerbuild命令来构建镜像,并给镜像起了一个名字docker-demo-user-serviceTAGlatest在当前文件夹下。

我们使用docker images来查看所有的镜像。

我们发现镜像列表里面有我们生成的镜像docker-demo

运行镜像

通过上面的步骤我们就已经完成了镜像的创建,接下来我们只需要使用docker run -p 8080:8080 -t jerome.xin/docker-demo 命令来运行我们的项目。接下来我们通过http://192.168.2.119:8080/来访问项目。得到如下结果:

我们能看到正常的返回了我们预期结果。这里说明一下192.168.2.119这个是我的虚拟机的地址。如果不想看到Spring Boot的启动日志我们可以使用这个命令docker run -d -p 8080:8080 -t jerome.xin/docker-demo启动项目。

执行docker ps来查看我们已经运行的镜像。

 docker ps

如果需要停止容器,可以执行下面的命令。

docker stop 55e9e3a65e07

总结

使用Docker使用可以执行的jar制作并运行镜像,可以总结为两步。第一步准备好一个可以执行的jar文件,第二步编写Dockerfile文件,最后使用Dockerbuild命令就可以把一个可执行jar文件制作成镜像。因为我们的可执行的jar文件是用来内嵌的Tomcat容器,所以我们只需要从Docker的中心仓库拉取一个JDK作为我们镜像的容器即可。

Spring Boot,Docker,Jar

发布了146 篇原创文章 · 获赞 21 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/lifeifei2010/article/details/104425588
今日推荐