docker启动jar包,并将⽇志⽂件进⾏挂载
服务器直接启动jar包命令
打包好的jar包,如果要运⾏起来,我们可以安装好java环境只会,直接执⾏java -jar 将服务启动起来
nohup java -server -Xms256m -Xmx256m -jar -Dserver.port=8088 -Dspring.profiles.active=local /root/app/auth/kunzhi-auth.jar >> /logs/kunzhi-auth.log 2>&1 &
容器中执⾏命令,使⽤docker-compose
但是,我们如果遇到要使⽤容器管理的时候,这种⽅式,就不太友好了
我们可以采⽤如下⽅式<;前提是你的docker已经安装好,compose也已经安装好,如果没有安装,就参看我其他的博客,有⼀篇是关于docker的安装>
然后,我们编写l的⽂件
⽬录结构
[root@hadoop1 auth]# ls
[root@hadoop1 auth]# pwd
/root/app/auth
[root@hadoop1 auth]#
version: "3"
docker重启容器命令
services:
auth-service:
# 指定容器名称
container_name: auth
# 重启机制
restart: always
image: java:8
volumes:
# 本地jar包路径
- /root/app/auth/kunzhi-auth.jar:/root/app/auth/kunzhi-auth.jar
# 本地脚本路径
- /root/app/auth/kunzhi-auth.sh:/root/app/auth/kunzhi-auth.sh
# 挂载⽇志 -v A:B ,A指宿主机位置,B指容器位置
- ./logs:/logs
# 指定容器时间为宿主机时间
- /etc/localtime:/etc/localtime
# 访问端⼝
ports:
- "8088:8088"
environment:
# 指定时区
- TZ="Asia/Shanghai"
#启动容器后执⾏的命令
entrypoint: sh /root/app/auth/kunzhi-auth.sh
⽂件解读
将宿主机的jar⽂件和sh脚本⽂件,挂载到容器⾥,
docker-compose up -d
会执⾏ entrypoint 后的命令,即在容器中跑⼀个挂载过去的脚本
脚本如下
nohup java -server -Xms256m -Xmx256m -jar -Dserver.port=8088 -Dspring.profiles.active=local /root/app/auth/kunzhi-auth.jar >> /logs/kunzhi-auth.log 2>&1 &
tail -f /logs/kunzhi-auth.log
那么就相当于是在容器内执⾏java -jar的命令,然后,输出⽇志⽂件到指定⽬录,再将⽇志⽂件的⽬录挂载到宿主机,即可在宿主机查看⽇志,
如果需要更新jar包,发布,只需要替换宿主机的jar包,docker restart 容器名即可完成替换
如果不需要指定输出⽇志的可以参考如下compose⽂件
version: "3"
services:
auth-service:
# 指定容器名称
container_name: auth
# 重启机制
restart: always
image: java:8
volumes:
# 本地jar包路径
- /root/app/auth/kunzhi-auth.jar:/root/app/auth/kunzhi-auth.jar
# 本地脚本路径
- /root/app/auth/kunzhi-auth.sh:/root/app/auth/kunzhi-auth.sh
# 挂载⽇志 -v A:B ,A指宿主机位置,B指容器位置
- ./logs:/logs
# 指定容器时间为宿主机时间
- /etc/localtime:/etc/localtime
# 访问端⼝
ports:
- "8088:8088"
environment:
# 指定时区
- TZ="Asia/Shanghai"
#启动容器后执⾏的命令
entrypoint: java -server -Xms256m -Xmx256m -jar -Dserver.port=8088 -Dspring.profiles.active=local kunzhi-auth.jar
当然,如果要查看⽇志,可以使⽤docker logs xxxx
还有,docker会⾃⼰收集容器的⽇志,使⽤docker inspect id(容器的id)可以看到⼀个 LogPath的⽬录这⾥就是存储容器⽇志的地⽅,在宿主机中
后续扩展
还有⼀种⽅式是直接docker run xxx 这种这⾥先不做说明,后续,使⽤到在进⾏说明

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。