java -jar 对应的jar包名字
有一种叫做“nohup”的命令,该命令可以让您的应用程序在后台运行,即使您已经断开了与终端的连接也能保持运行状态。
nohup 命令的语法为:
nohup command arg1 arg2 ... argN &
其中,command 是要运行的应用程序的命令,arg1、arg2…argN 则是该命令的参数。& 符号表示在后台运行该命令。当运行 nohup 命令时,所有的输出将写入到 nohup.out 文件中。可以通过检查这个文件来查看应用程序在后台运行的状态和输出。如果您想要停止应用程序,请使用 kill 命令,并指定应用程序的进程 ID。
运行jar包的指令
nohup java -jar XXXXXX.jar &
参数解释:
这个命令将在后台运行 XXXX.jar 的 Java 应用程序,并将输出写入 nohup.out 文件中。您可以使用命令“tail -f nohup.out”来查看该文件的内容,以检查应用程序正在后台运行的状态和输出。
tail -f nohup.out
如果想指定日志的位置以及日志文件名称
nohup java -jar XXXX.jar >> ./log/XXXX.log 2>&1 &
代码参数说明:
在这个命令中,输出会被重定向到 ./log/XXXX.log 文件中,使用“>>”操作符以追加的方式写入数据。其中“2>&1”表示将标准错误输出(stderr)合并到标准输出(stdout)中,以便将错误信息也写入同一个日志文件中。
这样操作可以让您更好地跟踪和调试应用程序,并根据需要对日志进行分析和处理。
如果将日志输出重定向到指定的日志文件(如 ./XXXX.log),那么日志文件将会在指定的路径中生成。在本例中,日志文件将生成在当前工作目录下的 log 目录中,文件名为 ad.log。
如果没有指定日志输出到特定的文件中,而是使用默认的行为,则在运行 nohup 命令时生成的 nohup.out 文件中包含了输出信息和错误信息。nohup.out 文件将生成在运行命令时的当前目录下。
请注意,日志路径的实际位置取决于在 nohup 命令中指定的路径。可以更改路径,以便生成日志文件的位置适合需求。
如果是在 Linux 操作系统上使用 nohup java -jar XXXX.jar & 运行的 jar 包,您可以使用以下命令来查看该进程:根据jar包名来查找运行的jar包
ps -ef | grep XXXXXX.jar
根据端口号来查找运行的jar包
ps -ef | grep <端口号>
这会显示一个包含进程信息的列表,其中包括进程 ID(PID),您可以使用此 ID 杀死进程:
kill
请注意,使用 kill 命令强制终止一个进程可能会导致数据损坏或其他意外的结果,因此请在确保没有正在进行重要操作的情况下使用此命令。
思路:
1、通过数据卷的方式将docker容器中的指定文件夹挂载到宿主机上,更新jar包只上传到宿主机的指定路径就可以。
2、利用脚本bash文件来运行构建jar包,并构建该bash的镜像,代替直接运行jar包的镜像。利于镜像与jar包之间的关系健康
1、在宿主机中创建存放docker配置文件,jar包的文件夹
在宿主机上,创建文件夹: 可以自己指定路径 ,用于存放bash文件和jar包。然后在该文件夹下面,创建一个bash文件和容器的配置文件。
2、创建bash文件
首先要看清楚自己现在所在的路径是否正确,这是我存放的位置。
在app的文件路径下创建脚本
vi run.sh
下面的是run.sh文件中的内容
java -jar /usr/data/XXXX.jar
方法说明:
/usr/data是docker容器内的路径。
这是docker自己管理的,我们不需要真的到docker容器内创建这个路径。
后面会将此路径挂载到当前文件夹:/usr/local/docker/app。这个脚本就是运行在docker容器中的/usr/data下面的指定jar包。
现在肯定有人疑惑,现在的jar包怎么来。或者说现在还没jar包,别急后面我们要挂载数据卷,数据卷中的jar包会同步到容器中去。现在是准备工作。
3、创建容器配置文件
创建一个dockerfile的配置文件,这个很重要再次强调这个文件一定是要在你的文件路径下的,和你的jar包位置在一起。因为这个文件一会要涉及到镜像的生成。
vi Dockerfile
这个是dockerfile文件中的内容
FROM openjdk:8-jdk-alpine
EXPOSE 需要映射的端口号
ENTRYPOINT ["sh","/usr/data/run.sh"]
代码说明:
这段代码是一个 Dockerfile,用于在 Docker 容器中启动一个基于 openjdk:8-jdk-alpine 镜像的 Java 应用。各行代码的解释如下:
还是在当前文件夹下面开始构建对象,一定要注意最后一个 点 ‘ . ’ 表示dockerfile文件在当前目录下面。这很重要
docker build -t 给镜像命名:版本号 .
举例说明
docker build -t app:1.0.0 .
请在命名的时候使用 'name:tag'的格式来给镜像命名。
docker run -d -it --name=myapp -p XXXX:XXXX -v /usr/local/docker/app:/usr/data app:1.0.0
参数说明:
重点:
--name :是我们的容器的名称
-p XXXX:XXXX:是要将主机的端口号映射到docker这个容器的端口号上去
-v 挂载数据卷 前面的路径是我们自己设置的路径 后面的路径是docker容器中的路径
最后是我们运行的容器的名字以及版本号
如果需要在docker重启后自动运行的话(开机自启动)
docker run --restart=always -d -it --name=myapp -p XXXX:XXXX -v /usr/local/docker/app:/usr/data app:1.0.0