使用Docker 运行jar 文件

  • 使用Java镜像直接运行
  • 切换root用户,在/etc/docker 目录下创建daemon.json文件,添加镜像源
{
"registry-mirrors": ["https://almtd3fa.mirror.aliyuncs.com"]
}
  • 重启docker
systemctl daemon-reload
systemctl docker restart

拉取Java镜像

docker pull java-jdk:8
  • 运行Jar文件
  • 将jar 包放入个人指定的目录,例如:/project/demo
  • 执行命令生成容器启动jar
docker run -d -p 8080:8083 -v /project/demo:project/demo --name demo java:8-jdk java -jar /project/demo/demo.jar
  • -d :后台运行
  • -p :端口映射
  • -v :/project/demo:/project/demo:将宿主机的路径映射到容器中
  • -name :定义生成容器的名称

利用Docker创建镜像运行jar 文件

  • 上传jar包到指定的目录
  • 在该目录下创建Dockerfile文件
vi Dockerfile
  • 将下面内容复制到Dockerfile中
FROM java:8
MAINTAINER dinny-xu
ADD docker-demo.jar  demo.jar
COPY config config
EXPOSE 9000
ENTRYPOINT ["java", "-jar", "demo.jar"]
  • FROM:基础镜像,基于jdk8镜像开始
  • MAINTAINER:作者
  • ADD:将jar文件添加(复制)到镜像内,docker-demo.jar源文件,demo.jar复制得到的文件
  • COPY:将应用的配置文件拷贝到镜像中
  • EXPOSE:声明端口
  • ENTRYPOINT:docker启动时,运行的命令,这里容器启动时直接运行jar服务

创建好Dockerfile文件之后,执行命令 构建镜像

docker build -t demo:test .
  • demo:镜像名称
  • tets:镜像的tag,如果不写默认latest
  • . :这个 . 一定不能忘记,最后的. 代表本次执行的上下文路径,ADD docker-demo.jar demo.jar ,中间的docker-demo.jar在哪里,就是根据这个 . 确定的,在上述Dockerfile,表示将当前文件夹下的docker-demo.jar和config 文件添加到容器中
  • 镜像构建成功后可查看镜像
docker images

运行镜像

docker run -d --name demo-test -p 9000:9000 -v /project/demo:/project/demo demo:test
  • 查看服务是否启动成功
docker ps
  • 根据容器CONTAINER ID 查看服务日志
    • 1000 表示查看最后1000行
docker logs -f --tail 1000 <容器ID>
上一篇 下一篇