新手向超简单docker启动jar包脚本
脚本
#!/bin/sh
sudo docker rm -f myjar
sudo docker run --name myjar --privileged --net=host --restart on-failure -v /data/html/images/:/data/html/images/ -v /data/jars/:/data/jars/ -v /etc/localtime:/etc/localtime -d docker.io/java:8 /bin/bash -c "java -jar -Duser.timezone=Asia/Shanghai /data/jars/myjar-0.0.1-SNAPSHOT.jar"
拆分解析脚本
rm
sudo docker rm -f myjar
#从docker中删除 名字叫myjar的容器
run
sudo docker run --name myjar
#docker启动容器,指定名字叫myjar
privileged
--privileged
#给容器root权限
–net
--net=host
#指定host jar包配置中未用到可以不写
–restart
--restart on-failure
#容器重启策略--非正常退出下重启 可以指定次数on-failure:3 三次
-v
-v /data/html/images/:/data/html/images/ -v /data/jars/:/data/jars/ -v /etc/localtime:/etc/localtime
#-v 挂载地址
#/data/html/images/:/data/html/images/
# 也就是jar包中图片会下载到/data/html/images/下面 把图片从容器的/data/html/images/地址指定到本机服务器的/data/html/images/地址
#/data/jars/:/data/jars/
# 就是jar包所在的目录指定到容器中所在的目录
#/etc/localtime:/etc/localtime
# 指定时间配置
-d
-d docker.io/java:8 /bin/bash
# 指定镜像 也就是 docker images中要有一个叫java 8的镜像
-c
-c "java -jar -Duser.timezone=Asia/Shanghai /data/jars/myjar-0.0.1-SNAPSHOT.jar"
#-c 容器启动后会指执行之后的命令
#-Duser.timezone=Asia/Shanghai 指定时区
#/data/jars/myjar-0.0.1-SNAPSHOT.jar 挂载的jar包地址
准备
docker images
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 f07dfa83b528 3 weeks ago 448MB
nginx latest 8cf1bfb43ff5 5 months ago 132MB
可以看到没有java:8这个镜像
执行
docker pull java:8
成功后
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 f07dfa83b528 3 weeks ago 448MB
nginx latest 8cf1bfb43ff5 5 months ago 132MB
java 8 d23bdf5b1b1b 3 years ago 643MB
启动
将命令写入
myjarbin.sh
sh myjarbin.sh
常用日志命令
docker logs -f --tail=200 myjar
# 最后两百行 较为常用
docker logs -f myjar
# 所有日志
docker logs -f --tail=200 myjar| grep 当前
# 查询后两百行日志中有 当前 字符的每一行