docker运行jar

1、下载java镜像,tag为8u111

docker pull java:8u111
2、运行docker容器
docker run --name ykgljar -p8082:8082 --restart=always -v /home/jar:/usr/jar -v /home/logs:/logs -d java:8u111 java -jar /usr/jar/ykgl-0.0.1-SNAPSHOT.jar

-d 表示在后台启动

-p 8082:8082表示将容器的端口 映射成宿主主机的端口,否则8082端口访问不到()

--restart=always 表示如果docker重启的话,该容器就会自动重启

-v /home/jar:/usr/jar 表示将宿主主机的jar目录,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)

-v /home/logs:/logs 表示将宿主主机的logs目录,映射到容器中

--name ykgljar 表示为该容器取一个全局唯一的名称,这里我取的名称为ykgljar

java:8u111 表示镜像文件的名称和tag

java -jar /usr/jar/ykgl-0.0.1-SNAPSHOT.jar 表示运行jar包,注意:这里的jar包为容器中的位置,是通过前面的-v属性映射的 

一定要注意:更新jar包时需要先停掉正在运行的容器,然后在上传jar包到宿主机器上,然后在启动容器,这样才可以。如果在程序运行着的时候直接将jar包上传到宿主机,然后在重启容器,是无效的。

猜测如果运行着程序上传到宿主机就直接同步到容器内,那么对这正运行着的容器的程序产生不可预计的影响。所以docker可能在运行着的时候不会将宿主机上的最新jar包同步到容器里,但由于宿主机和容器之间有挂载关系,因此安全起见,只能在检测到宿主机发生改变后将容器里的jar包反向更新到宿主机上,这样,我们上传到宿主机的新jar包被回滚了。所以一定要停掉容器后再更新jar包,然后重启容器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值