VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
项目的 jar 文件作为 “app.jar” 添加到容器的
ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/https://blog.csdn.net/qq_42451555/article/details/urandom” 作为 Entropy Source
如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。
但是以上面的方式做出的镜像是有问题的,在后面运行项目时你会发现项目启动日志中的时间和宿主机的时间不一致。如果你项目中有使用获取系统当前时间就会出问题,一般来说我们还会加上
在制作镜像时候,运行jar时指定上时区参数,以便Springboot项目中的日志中能够正确读取到指定时区的时间。中国采用东八区的时区,所以是GMT+8
执行下面命令, 看好,最后面有个"."点!
一般来说使用docker部署项目都要将配置文件、log日志、图片文件路径挂载出来,使用宿主机的文件 ,配置文件是为了方便修改一些设置(redis、mysql等的连接)、log日志如果不放到宿主机上,当容器重启时会将log日志清空
具体步骤
第一步: 确定自己的docker容器中的日志目录
第二步:确定宿主机的挂载目录
第三步:运行docker
好了,这样启动以后,配置文件、log日志、图片文件路径就会写入到宿主机的目录中,当你的容器关闭、重启或是删除容器时日志都会被完整的保留下来,修改redis、mysql时 只需要更改宿主机的挂载文件就可以了
完整项目启动命令:
查看日志 docker logs 容器id
通过docker logs命令可以查看容器的日志。
命令格式:
例子:
查看所有日志
查看指定时间后的日志,只显示最后100行:
查看最近30分钟的日志:
查看某时间之后的日志:
查看某时间段日志: