一、构建本地jar包

  1. 进入到项目目录下执行如下命令
mvn -e clean package -Dmaven.test.skip=true
  1. 或者直接在idea中打包
  2. 在docker 运行 jar包没反应 docker启动jar包_docker

  3. 得到target文件夹
  4. 在docker 运行 jar包没反应 docker启动jar包_在docker 运行 jar包没反应_02

  5. 进入到target文件夹得到jar包
  6. 在docker 运行 jar包没反应 docker启动jar包_jar_03

二、创建Dockerfile文件

  1. 新建Dockerfile文件,内容如下
FROM openjdk:8-jre
MAINTAINER jag <895732142@qq.com>
ENTRYPOINT ["java", "-jar", "/app.jar"]
ARG JAR_FILE
COPY taskcenter-1.0.jar app.jar
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone
  1. 将DockerFile文件和jar包统一保存到指定的相同路径下

三、通过Dockerfile构建镜像

  1. 进入存放jar包和dockerfile文件的目录
  2. 执行构建镜像命令
    -t 为指定构建镜像的名字和版本,格式为 name:tag , 后面的 . 为让 Docker 到当前本地目录去寻找 Dockerfile 文件
docker build -t taskcenter:1.0 .
  1. 执行结果
  2. 查看docker镜像
docker images

如果显示我们上面定义的镜像名代表构建镜像成功(我这里名字为taskcenter版本为1.0)

在docker 运行 jar包没反应 docker启动jar包_docker_04

四、启动容器

  1. 执行启动容器命令
    -p表示指定映射端口 --name指定容器名称 -d以后台模式启动一个容器 taskcenter:1.0为镜像名称和版本
docker run -p 8011:8011 --name taskcenter -d taskcenter:1.0
  1. 查看运行中的docker容器命令
docker ps

在docker 运行 jar包没反应 docker启动jar包_docker_05

  1. 查看服务容器日志
    -f 后面跟容器名称或者容器id都可以
docker logs -f taskcenter

可以看到项目启动成功

在docker 运行 jar包没反应 docker启动jar包_docker_06

五、测试

  1. 调用接口测试
    可以看到调用接口成功

在docker 运行 jar包没反应 docker启动jar包_jar_07

分割线 ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶ ✶