docker 部署Java项目

docker 部署Java项目


jdk安装参考:
https://blog.csdn.net/jg_csdn/article/details/122671063?spm=1001.2014.3001.5501

1、将jar包上传到centos上
2、编写Dockerfile文件,创建文件名为Dockerfile的文本文件,将maven打包好的jar包和Dockerfile文件放在同一目录下,内容如下:
docker 部署Java项目_第1张图片
Dockerfile文件内容

FROM java:8

COPY  small_demo.jar  app.jar

RUN bash -c "touch /app.jar"

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "app.jar"]

docker 部署Java项目_第2张图片

3、 制作镜像

docker build -t  small .

docker 部署Java项目_第3张图片
制作完成,查看镜像

docker image ls

在这里插入图片描述

4、启动容器

docker run -d -p 8080:8081 small

在这里插入图片描述
重启docker

 systemctl  restart docker

再重启docker 容器
dockers start 容器id
docker 部署Java项目_第4张图片
5、日志清理
有两种方式,一种写脚本定时删除,另一种设置容器日志大小
默认日志存储在/var/lib/docker/containers/目录下
在这里插入图片描述
一、写脚本定时删除
新建脚本,我一般存放在日志目录同级

 vim  /var/lib/docker/containers/clean_docker_log.sh

在这里插入图片描述

#!/bin/sh 
  
echo "======== start clean docker containers logs ========"  
  
logs=$(find /var/lib/docker/containers/*/ -name *-json.log)  
  
for log in $logs  
        do  
                echo "clean logs : $log"  
                cat /dev/null > $log  
        done  

echo "======== end clean docker containers logs ========"  

修改脚本权限

chmod 777 /var/lib/docker/containers/clean_docker_log.sh

执行脚本

./clean_docker_log.sh

docker 部署Java项目_第5张图片
设置定时任务执行脚本
检查本机crond的基本情况

service crond status

docker 部署Java项目_第6张图片
查看当前定时任务

crontab -l

编辑定时任务

crontab -e
# 定时执行脚本
 */1  *  *  *  * /var/lib/docker/containers/clean_docker_log.sh

*/1 :代表每分钟执行
再查看
在这里插入图片描述
重启定时服务

 systemctl  reload crond.service
systemctl  restart  crond.service

二、设置容器日志大小
1.新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:

{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "10"
    }
}

max-size=100m,意味着一个容器日志大小上限是100m,
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

2.然后重启docker的守护线程

systemctl daemon-reload

systemctl restart docker.service
注意:新创建的容器会生效,原有容器不生效。

你可能感兴趣的:(docker,java,docker,maven)