diff --git a/ZhuQue/Dockerfile b/ZhuQue/Dockerfile index 72779ff..a27ccdd 100644 --- a/ZhuQue/Dockerfile +++ b/ZhuQue/Dockerfile @@ -7,29 +7,9 @@ WORKDIR /root ENV TZ=Asia/Shanghai # 将target文件夹下的jar包gw-charge.jar复制到容器的/root目录下 -COPY ./target/ZhuQue-1.0.jar /root/ZhuQue-1.0.jar +COPY ./ZhuQue /root/ZhuQue -# 每个参数的含义: -#-server:选择服务器(server)模式,这是JVM的高性能模式。 -#-XX:+UnlockExperimentalVMOptions:启用JVM中的实验性选项。 -#-XX:+UseCGroupMemoryLimitForHeap:让JVM堆内存大小限制与cgroups的内存限制一致。cgroups是一种Linux内核特性,用于限制进程组使用的资源。 -#-XX:MaxRAMFraction=1:设置JVM可以使用的最大堆内存占系统总内存的比例为100%。 #设置这个环境变量后,您可以在Docker容器中启动Java应用程序时使用这些参数。 -ENV JAVA_OPTS="-server -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 " +ENV JAVA_OPTS="-Xms2048m -Xmx4096m" -# 这行指令设置了名为ENV_OPTS的环境变量,其值是一个用于Spring应用程序的命令行参数,用来激活名为test的配置文件。 -# 这个参数通常在启动Spring应用程序时使用,以确保应用程序加载正确的配置。 -# Spring Boot会根据以下优先级顺序来确定激活的配置文件: -#命令行参数:使用-Dspring.profiles.active=...指定的配置文件具有最高的优先级。 -#环境变量:如果设置了SPRING_PROFILES_ACTIVE环境变量,它将覆盖配置文件中的设置。 -#配置文件中的spring.profiles.active:在application.properties或bootstrap.properties(以及对应的YAML格式)中设置的spring.profiles.active具有较低的优先级。 -#在您提供的情况中,通过ENV指令设置的环境变量ENV_OPTS包含了-Dspring.profiles.active=test,这意味着在启动Java应用程序时,将通过命令行参数指定test配置文件为激活配置。因此,即使bootstrap.yml文件中设置了profiles: active: dev,应用程序最终将使用test配置文件,因为命令行参数的优先级高于配置文件中的设置。 -#所以,最终JAR包执行时,将使用test配置文件。 -ENV ENV_OPTS="-Dspring.profiles.active=dev" -#ENV ENV_OPTS="-Dspring.profiles.active=pro" - -# sh -c:这告诉Docker容器使用sh(Shell)来执行后面的命令字符串。-c参数表示后面跟着的是要执行的命令。 -#java $JAVA_OPTS $ENV_OPTS ...:这是要执行的Java命令,其中$JAVA_OPTS和$ENV_OPTS是之前通过ENV指令设置的环境变量,它们将在运行时被替换为它们各自的值。 -#-Djava.security.egd=file:/dev/./urandom:这是一个Java系统属性,用于设置Java加密图形设备(EGD)的路径。这里指定为/dev/./urandom,这是一个提供高熵随机数的Unix特殊文件,常用于加密操作。 -#-jar /root/gw-charge.jar:这指定了要执行的Java归档文件(JAR)的位置和名称。这里假设JAR文件位于容器的/root目录下,名为gw-charge.jar。 -ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS $ENV_OPTS -Djava.security.egd=file:/dev/./urandom -jar /root/gw-charge.jar" ] +ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -cp /root/ZhuQue/target/classes:/root/ZhuQue/lib/* com.dsideal.ZhuQue.Start" ] diff --git a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Interceptor/IsLoginInterceptor.java b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Interceptor/IsLoginInterceptor.java index c6caef9..15a0012 100644 --- a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Interceptor/IsLoginInterceptor.java +++ b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Interceptor/IsLoginInterceptor.java @@ -36,9 +36,7 @@ public class IsLoginInterceptor implements Interceptor { inv.invoke(); } - //1、读取Session boolean isTrue = true; - HttpServletRequest request = con.getRequest(); //从Http请求头中获取Authorization String Authorization = request.getHeader("Authorization"); diff --git a/ZhuQue/src/main/resource/application.properties b/ZhuQue/src/main/resource/application.properties index c2c5326..75f020b 100644 --- a/ZhuQue/src/main/resource/application.properties +++ b/ZhuQue/src/main/resource/application.properties @@ -2,7 +2,6 @@ driverClassName=com.mysql.jdbc.Driver user=root password=DsideaL147258369 -# 长春市 jdbcUrl=jdbc:mysql://10.10.14.210:22066/yltcharge?useUnicode=true&characterEncoding=GBK&useSSL=false # redis diff --git a/ZhuQue/src/main/resource/start.sh b/ZhuQue/src/main/resource/start.sh index b836b3e..72ad0a4 100644 --- a/ZhuQue/src/main/resource/start.sh +++ b/ZhuQue/src/main/resource/start.sh @@ -1,7 +1,7 @@ #!/bin/bash # 启动入口类,该脚本文件用于别的项目时要改这里 -MAIN_CLASS=com.dsideal.QingLong.Start +MAIN_CLASS=com.dsideal.ZhuQue.Start # Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格 @@ -13,7 +13,7 @@ export PATH=${JAVA_HOME}/bin:$PATH JAVA_OPTS="-Xms2048m -Xmx4096m" # 生成 class path 值 -CP=.:/usr/local/tomcat8/webapps/QingLong/WEB-INF/lib/* +CP=.:/usr/local/tomcat8/webapps/ZhuQue/WEB-INF/lib/* # 运行为后台进程,并且将信息输出到 logback.xml配置的日志文件位置 nohup java ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >> /dev/null 2>&1 & diff --git a/ZhuQue/src/main/resource/stop.sh b/ZhuQue/src/main/resource/stop.sh index af23e0e..11538b0 100644 --- a/ZhuQue/src/main/resource/stop.sh +++ b/ZhuQue/src/main/resource/stop.sh @@ -1,7 +1,7 @@ #!/bin/bash # 启动入口类,该脚本文件用于别的项目时要改这里 -MAIN_CLASS=com.dsideal.QingLong.Start +MAIN_CLASS=com.dsideal.ZhuQue.Start # kill 命令不使用 -9 参数时,会回调 onStop() 方法,确定不需要此回调建议使用 -9 参数 kill -9 `pgrep -f ${MAIN_CLASS}` 2>/dev/null diff --git a/操作文档/9、Dockert使用办法.md b/操作文档/9、Dockert使用办法.md index 1e7d042..b2e930f 100644 --- a/操作文档/9、Dockert使用办法.md +++ b/操作文档/9、Dockert使用办法.md @@ -33,37 +33,28 @@ EOF systemctl daemon-reload ``` -#### 3、启动$Docker$ +#### 3、常用命令 ```shell +# 启动Docker systemctl start docker -``` - -#### 4、卸载 $Docker$ - -```shell +# 卸载Docker yum remove docker-ce -``` - -#### 5、删除镜像、容器、配置文件等内容 - -``` +# 删除镜像、容器、配置文件等内容 rm -rf /var/lib/docker ``` -### 二、镜像管理 +### 二、镜像 -#### 查看可用版本 +**查看可用版本** ``` docker search tomcat ``` - ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408061429398.png) - -#### 下载$Tomcat$镜像 +**下载$Tomcat$镜像** ``` docker pull tomcat # 下载最新版本的Tomcat @@ -73,15 +64,13 @@ docker pull tomcat:9.0 # 下载9.0版本的Tomcat docker pull tomcat:8.0 # 下载8.0版本的Tomcat ``` -#### 查看本地已下载好的镜像 +**查看本地镜像** ``` docker images ``` -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408070750107.png) - -#### 删除本地下载好的镜像 +**删除本地下载好的镜像** ``` docker rmi -f @@ -89,7 +78,7 @@ docker rmi -f -### 三、容器管理 +### 三、容器 #### 1、运行容器 @@ -97,9 +86,7 @@ docker rmi -f docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat ``` -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408061425025.png) - -命令说明: +**命令说明**: ``` -p 8080:8080:将主机的 8080 端口映射到容器的 8080 端口 @@ -108,60 +95,34 @@ docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/tes tomcat:这是要运行的 Docker 镜像的名称。在这个命令中,它假定您已经有了一个名为 tomcat 的本地镜像,或者 Docker 将尝试从 Docker Hub 拉取一个名为 tomcat 的公共镜像。 ``` - - -> $Tomcat$需要把 `/usr/local/tomcat/webapps.dist/`目录下的所有文件和文件夹拷贝到 `/usr/local/tomcat/webapps/`下,才能访问到小猫的页面。 - -``` -cd /usr/local/tomcat/webapps.dist/ -mv docs/ ../webapps/ -mv examples/ ../webapps/ -mv host-manager/ ../webapps/ -mv manager/ ../webapps/ -mv ROOT/ ../webapps/ -``` - -查看$Tomcat$运行的主界面 - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408061433517.png) - #### 2、查看容器 ``` docker ps ``` -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408061427759.png) - #### 3、删除容器 ``` -docker rm -f openjdk1.8 -或者 docker rm -f 4bf2bd13f5b0 ``` #### 4、进入容器 ``` -docker exec -it openjdk1.8 /bin/bash -``` - -``` -root@4bf2bd13f5b0:/usr/local/openjdk-8/bin# pwd -/usr/local/openjdk-8/bin +docker exec -it 4bf2bd13f5b0 /bin/bash ``` #### 5、将文件复制到容器外 ``` -docker cp openjdk1.8:/usr/local/1.txt ./ +docker cp 4bf2bd13f5b0:/usr/local/1.txt ./ ``` #### 6、将文件复制回容器 ``` -docker cp ./1.txt openjdk1.8:/usr/local/ +docker cp ./1.txt 4bf2bd13f5b0:/usr/local/ ``` @@ -170,7 +131,7 @@ docker cp ./1.txt openjdk1.8:/usr/local/ > $dockerfile$ 内容如下: -``` +```shell # 指定了使用openjdk:8u332-jre-slim-bullseye镜像作为基础镜像,并且给这个镜像起了一个别名runner FROM openjdk:8u332-jre-slim-bullseye AS runner @@ -246,7 +207,7 @@ docker build -t gw-charge . ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408070821581.png) -##### 查看本地是不是多了一个镜像 +##### 本地多了一个镜像 ``` docker images @@ -264,15 +225,15 @@ docker run -d -p 7001:7001 gw-charge ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408070824703.png) -#### 查看正在运行的容器 +#### 查看容器 ``` -docker ps +docker ps -a ``` -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408070848284.png) -#### 查看$Docker$日志 + +#### 查看日志 ``` docker logs c128a94e5884 @@ -286,6 +247,8 @@ http://10.10.14.212:7001 ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408070839957.png) +### 五、未来可能的操作 + ``` # 拷贝出来做备份 docker cp b30008f6e67d:/root/gw-charge.jar ./gw-charge-backup.jar @@ -300,7 +263,7 @@ docker restart b30008f6e67d docker ps ``` -#### 五、查看容器的启动脚本(或命令) +#### 查看容器的启动脚本(或命令) ``` docker inspect --format '{{.Config.Entrypoint}}' b30008f6e67d @@ -337,27 +300,21 @@ root@b30008f6e67d:~# echo $JAVA_OPTS -#### 六、安装$OpenJDK 21$ +#### 安装$OpenJDK 21$ ``` docker pull openjdk:21 ``` -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408071459496.png) - -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408071459474.png) - -删除镜像 +**删除镜像** ``` docker rmi -f 079114de2be1 ``` -![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408071500628.png) - -#### 六、实测阿里云容器服务 +### 六、实测阿里云容器服务 > **参考文档**:[使用个人版实例推送拉取Docker镜像_容器镜像服务(ACR)](https://help.aliyun.com/zh/acr/user-guide/use-a-container-registry-personal-edition-instance-to-push-and-pull-images?spm=a2c4g.11186623.0.0.631a1ecdldRK92) @@ -398,5 +355,44 @@ d279e3a2f938: Pushed ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408071648987.png) +#### 新写的模块打包发布 + +``` +# 生成镜像 +docker build -t jfinal . + +# 查看镜像 +docker images + +# 删除镜像 +docker rmi -f + +# 运行容器 +docker run --name jfinal -p 8888:8888 -d jfinal + +# 查看日志 +docker logs d70ce374a7ad + +# 删除容器 +docker rm -f 8ed8d718533e + +# 查看容器 +docker ps -a + +# 进入容器 +docker exec -it d70ce374a7ad /bin/bash + +# 重启容器 +docker restart d70ce374a7ad +``` + + + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408080740519.png) + + + +![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202408080742503.png) +