docker file 打包jar_Docker 部署jar包

Docker这门技术也是开发中我们值得掌握的一门技术。接下我们就来探究一下, 怎么使用Docker容器化的技术来构建并运行,Spring Boot项目的可执行Jar包。

演示环境

CentOS 7

Docker 1.13.1

Spring Boot 2.1.1.RELEASE

准备一个Spring Boot项目

构建一个 Spring Boot项目的方式有很多,也不是我们讨论的重点,这里就不多做描述了。我们在项目中准备一个简单的HelloController,其中有一个sayHello()方法映射到我们访问项目的跟路径,访问时返回:Hello Jerome, This is docker image !。

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

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

制作Docker镜像

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

编写Dockerfile

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

上面命令的相关解释:

从docker仓库获取openjdk作为我们项目的容器

VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/tmp。

项目的docker-demo-0.0.1.jar作为app.jar添加到容器。

ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向/dev/urandom 作为 Entropy Source

# from java:8   拉取一个jdk为1.8的docker image

# maintainer  作者是bingo

# demo-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称

# demo.jar  是你将该jar包重新命名为什么名称,在容器中运行

#  expose  该容器暴露的端口是多少,就是jar在容器中以多少端口运行

# entrypoint 容器启动之后执行的命令,java -jar demo.jar  即启动jar

构建Docker镜像

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

这个命令就是使用Docker的build命令来构建镜像,并给镜像起了一个名字jerome.xin/docker-demo其TAG为latest在当前文件夹下。

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

我们发现镜像列表里面有我们生成的镜像jerome.xin/docker-demo。

运行镜像

通过上面的步骤我们就已经完成了镜像的创建,接下来我们只需要使用

docker run -d --restart=always --name docker-demo -v /usr/local/apps/docker-demo/logs:/home/docker-demo/logs -p 7500:7500 docker-demo 命令来运行我们的项目。

这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always

-v /usr/local/apps/docker-demo/logs:/home/docker-demo/logs:将镜像内/home/docker-demo/logs目录的日志挂载到宿主机/usr/local/apps/docker-demo/logs目录下

-p 7500:7500:端口映射,默认启动的是7500

docker logs --tail  300 -f  demo  查看启动日志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值