Docker将jar包制作为镜像,在Docker环境运行

首先我们将一个简单的Springboot项目打包成jar

然后将项目上传至Linux系统

系统提前装好docker环境

测试docker版本:

docker -v
image

首先我们将准备的xxx.jar,Dockerfile拷贝到我们的CentOS 7机器上

下图idea 进行打好的包

image

我们拷贝的路径为:

/usr/local/dev
image

编写的Dockerfile文件为:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD spring-boot-docker.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作为工作目录。效果就是在主机的/usr/local/dev目录下创建了一个临时文件,并连接到容器的/tmp
  3. 项目的dspring-boot-docker.jar作为app.jar添加到容器。
  4. ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向/dev/urandom 作为 Entropy Source

构建Docker镜像

我们在/usr/local/dev目录下,执行Docker的命令来构建镜像。

docker build -t ludashi/spring-boot-docker-t:latest .

这个命令就是使用Dockerbuild命令来构建镜像,并给镜像起了一个名字ludashi/spring-boot-docker-t其TAGlatest在当前文件夹下。

image

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

docker images
image

我们发现镜像列表里面有我们生成的镜像ludashi/spring-boot-docker-t

运行镜像

镜像构建成功之后,就可以运行容器了:

docker run -d --name spring-boot-docker -p 8899:8899 ludashi/spring-boot-docker-t
image

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

docker run -d --restart=always --name spring-boot-docker -p 8899:8899 ludashi/spring-boot-docker-t

如果docker run 的时候没有加 --restart=always ,然后已经运行的docker容器怎么设置自动重启? 执行下面命令:

 docker update --restart=always spring-boot-docker

然后docker ps 看看你的容器有没有在运行即可

docker ps
image

docker logs --tail 300 -f spring-boot-docker-t 查看启动日志

docker logs --tail  300 -f  spring-boot-docker
image

访问浏览器:

image

OK!

你可能感兴趣的:(Docker将jar包制作为镜像,在Docker环境运行)