docker与java的前世今生(一)

目录

1.前世与今生

2.Dockerfile

3.docker-compose.yml

4.生成镜像并启动容器

4.1以上文件包括jar包放到一个目录里面去,如下:

4.2执行命令

4.3常用排错命令

1.前世与今生

 ![:lol:](https://img-blog.csdnimg.cn/img_convert/9525dc5bd3461dc94d1b2a3c51de67cd.gif) 调皮一下,本次打包方式基于Dokerfile进行镜像制作,docker-compose进行容器部署,需要的准备好的只是一个简单的可执行jar包。这种方式对于springboot项目最为合适。同志们可以跟我的步骤放心执行,这种方式,生产环境使用后我才整理出来,说白了就是笔记。

  另外一种方式基于maven进行打包上次到镜像仓库的方式,后面有机会在发出来。

2.Dockerfile

FROM java:8
# 将targer目录下的jar包复制到docker容器/home/springboot目录下面目录下面
ADD zkjy-data-original-server.jar /home/springboot/zkjy-data-original-server.jar
RUN bash -c 'touch /zkjy-data-original-server.jar'
# 声明服务运行在38081端口
EXPOSE 38081
# 执行命令
#ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /home/springboot/app.jar
#ENTRYPOINT ["sh", "-c", "java ${JVM_OPTS} ${EXT_OPTS} -jar /home/springboot/app.jar > /dev/null 2>&1 &"]
CMD java ${JVM_OPTS} ${EXT_OPTS} -jar /home/springboot/zkjy-data-original-server.jar
# 指定维护者名称
MAINTAINER JIERUI

3.docker-compose.yml

version: '3.7'
services:
  zkjy-data-original-server:
    image: zkjy/zkjy-data-original-server:1.0.0
    restart: "always"
    ports:
      - 38081:38081
    working_dir: /home/springboot
    container_name: "zkjy-data-original-server"
    volumes:
      - "/home/docker/zkjy-data-original-server/config:/home/springboot/config"
    environment:
      - JVM_OPTS=-Xms512m -Xmx1024m -Xmn256m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:+PrintGCDetails -XX:MaxGCPauseMillis=100 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/dump.log
      - EXT_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8

4.生成镜像并启动容器

4.1以上文件包括jar包放到一个目录里面去,如下:

在这里插入图片描述

4.2执行命令

docker build -t zkjy/zkjy-data-original-server:1.0.0 .   #生成镜像文件
docker-compose up -d  #启动容器
#配置正确的情况下,到这里容器应该正常启动了

4.3常用排错命令

docker rmi zkjy/zkjy-data-original-server:1.0.0  #删除镜像
docker logs -f zkjy-data-original-server  #查看日志
docker exec -it zkjy-data-original-server /bin/bash #进入容器内部
  我这里的jar包依赖于外部配置文件,所有我的docker-compose里面有个外部挂载目录,此目录和jar保持同级,这样可以动态加载配置启动,具体情况具体处理,如果,jar包包含了配置文件在里面,那么就不需要挂载,但是这种打在jar包中的方式,不利于项目排错,不建议使用。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值