Docker下通过Dockerfile部署Jar包

  1. 服务器下创建/docker/jar目录,在该目录下创建指定项目存放目录,例如:test,将jar包上传到该目录下,并重命名为ROOT.jar。在/docker目录下创建/logs目录,用来存放日志文件,在该目录下创建指定项目日志存放目录。
# test为具体项目名
mkdir -p /docker/jar/test
mkdir -p /docker/logs/test
mv /docker/jar/test/efp-web-5.4-M-SNAPSHOT.jar /docker/jar/test/ROOT.jar
  1. 在该目录下创建Dockerfile 文件
vi Dockerfile
  1. 修改 Dockerfile 文件并保存
# 拉取一个jdk为1.8的docker镜像
FROM java:8
# 声明作者是guoyl
MAINTAINER guoyl
# 前一个 ROOT.jar 为上传的jar包,后一个 ROOT.jar 是将服务器中jar包对应在容器中运行的jar包名称
ADD ROOT.jar ROOT.jar
# 容器暴露的端口号,需要与jar包在容器中运行使用端口号一致
EXPOSE 8080
# 容器启动之后执行的命令, java -jar ROOT.jar
ENTRYPOINT ["java","-jar","ROOT.jar"]
  1. 执行命令,构建镜像
docker build -t guoyl/demo .

注意:最后的点号,表示在Dockerfile文件在当前目录下,guoyl/demo表示构建后的镜像名称。

  1. 运行
# --restart=always 表示docker容器在停止或服务器开机之后会自动重新启动
docker run -d --restart=always --name demo -p 8080:8080 -v /docker/logs/test:/logs guoyl/demo
  1. 查看容器是否运行
docker ps
  1. 查看启动日志
docker logs --tail 300 -f demo

注:如果存在jar包更新该方法需要重新生成镜像,再运行镜像生成新容器才可生效。Docker存在另一种通过拉取jdk镜像生成jdk容器部署jar包方式可以无需重新生成镜像,只需替换jar包重启容器即可,后续会更新

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。