宁波网站推广软件哪家强些,wordpress 评论后,新浪网页游戏,邯郸网站建设网站开发文章目录 #x1f4a5; 简介#x1f4a1; 基础-Tomcat镜像部署#x1f396;️ 企业实战-制作Tomcat项目镜像#x1f3af; 企业实战-Docker部署SpringBoot项目#x1f680; 问题复盘#x1f353; 总结 #x1f4a5; 简介 由于公司内部机器要做迁移#xff0c;原系统机器… 文章目录 简介 基础-Tomcat镜像部署️ 企业实战-制作Tomcat项目镜像 企业实战-Docker部署SpringBoot项目 问题复盘 总结 简介 由于公司内部机器要做迁移原系统机器部署在阿里云要向亚马逊云迁移由于之前的服务实在windows远程机器部署并且有些项目因为打包问题需要远程机器的IDEA做启停控制本次准备先解决相关打包问题然后将服务通过镜像方式部署服务部署后性能相比之前更快了下面是相关操作文档。 基础-Tomcat镜像部署
检查本地环境
[rootVM-12-2-opencloudos local]# cat /etc/os-release
NAMEOpenCloudOS
VERSION8.6
IDopencloudos
ID_LIKErhel fedora
VERSION_ID8.6
PLATFORM_IDplatform:oc8
PRETTY_NAMEOpenCloudOS 8.6
ANSI_COLOR0;31
CPE_NAMEcpe:/o:opencloudos:opencloudos:8
HOME_URLhttps://www.opencloudos.org/
BUG_REPORT_URLhttps://bugs.opencloudos.tech/检查docker服务状态
[rootVM-12-2-opencloudos local]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2023-11-01 21:57:27 CST; 3 weeks 2 days agoDocs: https://docs.docker.comMain PID: 34389 (dockerd)Tasks: 30Memory: 740.3MCGroup: /system.slice/docker.service├─34389 /usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock├─35838 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3306 -container-ip 172.17.0.2 -container-port 3306└─35847 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 3306 -container-ip 172.17.0.2 -container-port 3306Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.检查Docker版本
[rootVM-12-2-opencloudos local]# docker version
Client: Docker Engine - CommunityVersion: 24.0.7API version: 1.43Go version: go1.20.10Git commit: afdd53bBuilt: Thu Oct 26 09:09:18 2023OS/Arch: linux/amd64Context: defaultServer: Docker Engine - CommunityEngine:Version: 24.0.7API version: 1.43 (minimum version 1.12)Go version: go1.20.10Git commit: 311b9ffBuilt: Thu Oct 26 09:08:20 2023OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.6.24GitCommit: 61f9fd88f79f081d64d6fa3bb1a0dc71ec870523runc:Version: 1.1.9GitCommit: v1.1.9-0-gccaecfcdocker-init:Version: 0.19.0GitCommit: de40ad0搜索Tomcat镜像版本 tomcat版本地址选择: https://javaforall.cn/179038.html 本次使用tomcat:8.5.46-jdk8-openjdk镜像 拉取镜像
[rootVM-12-2-opencloudos local]# docker pull tomcat:8.5.46-jdk8-openjdk
8.5.46-jdk8-openjdk: Pulling from library/tomcat
092586df9206: Pull complete
ef599477fae0: Pull complete
4530c6472b5d: Pull complete
d34d61487075: Pull complete
272f46008219: Pull complete
12ff6ccfe7a6: Pull complete
f26b99e1adb1: Pull complete
21bec9c8ea28: Pull complete
b8a32f28e27c: Pull complete
94fdd0ba0430: Pull complete
Digest: sha256:bb4ceffaf5aa2eba6c3ee0db46d863c8b23b263cb547dec0942e757598fd0c24
Status: Downloaded newer image for tomcat:8.5.46-jdk8-openjdk
docker.io/library/tomcat:8.5.46-jdk8-openjdk创建容器挂载目录
[rootVM-12-2-opencloudos local]# mkdir -p /data/tomcat/data
[rootVM-12-2-opencloudos local]# chmod -R 777 /data/tomcat/运行Tomcat容器
[rootVM-12-2-opencloudos local]# docker run -d --name my_web --restart always -p 8080:8080 -v /data/tomcat/data:/usr/local/tomcat/webapps/ROOT/ tomcat:8.5.46-jdk8-openjdk
5a8bf43b2c1568d0d72477ae4a8846421533b66a5bd946ac27978980efe908f6查看tomcat运行状态
[rootVM-12-2-opencloudos local]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a8bf43b2c15 tomcat:8.5.46-jdk8-openjdk catalina.sh run 2 minutes ago Up 2 minutes 0.0.0.0:8080-8080/tcp, :::8080-8080/tcp my_web
70c4b01b0631 mysql docker-entrypoint.s… 3 weeks ago Up 3 weeks 0.0.0.0:3306-3306/tcp, :::3306-3306/tcp, 33060/tcp mysql️ 企业实战-制作Tomcat项目镜像
tomcat版本选取
参考地址https://pythonjishu.com/rvyvovkfpggafry/
tomcat 配置调优 参考地址: https://blog.csdn.net/z20021111/article/details/126666667 https://blog.csdn.net/vnjohn/article/details/125980391 JDK8版本选取 JDK选用JDK 1.8.0_92 JDK 1.8.0_92是Java Development Kit的最新版本于2016年12月发布。它是Java SE 8u92的更新版本包含了许多新的功能和改进包括 改进的安全性Java 8引入了一些安全性改进包括增强的安全管理器、更强的加密算法、更好的SSL/TLS支持等。 改进的垃圾回收Java 8引入了一些垃圾回收改进包括并行垃圾回收、低停顿垃圾回收、更好的内存使用等。 改进的性能Java 8引入了一些性能改进包括更快的JIT编译器、更快的字符串操作、更快的数组操作等。 改进的APIJava 8引入了一些新的API包括Stream API、Optional类、Date/Time API等。 改进的工具Java 8引入了一些新的工具包括JavaFX工具箱、Nashorn JavaScript引擎等。 总的来说Java 8的改进包括安全性、垃圾回收、性能、API和工具等方面。这些改进使得Java 8更加稳定、可靠和高效
上传文件 上传jdktomcat的tar.gz文件
-rw-r--r-- 1 root root 181599521 Nov 25 13:33 jdk1.8.0_92.tar.gz
-rw-r--r-- 1 root root 11582260 Nov 25 11:37 tomcat9.tar.gz
[rootVM-12-2-opencloudos tomcat]# pwd
/usr/local/tomcat编写DockerFile jvm参数调优项参考https://blog.csdn.net/hadues/article/details/132018430
# 引入基础centos
FROM centos:7
# 时区
ENV TZAsia/Shanghai
#将dk和tomcat加入到容器
ADD jdk1.8.0_92.tar.gz /usr/local/tomcat
ADD tomcat9.tar.gz /usr/local/tomcat
RUN rm -rf /usr/local/tomcat/tomcat9/webapps/*
COPY ROOT.war /usr/local/tomcat/tomcat9/webapps/
#安装vim命令
RUN yum -y install vim
#设置环境
ENV MYPATH /usr/local
ENV JAVA_OPTS-XX:HeapDumpOnOutOfMemoryError -Xmx2g -Xms2g -Xmn768m -XX:MetaspaceSize256m -XX:MaxMetaspaceSize256m -Xss256k -XX:UseG1GC -XX:AlwaysPreTouch -XX:-ResizePLAB -XX:ParallelRefProcEnabled -XX:ExplicitGCInvokesConcurrent -XX:MaxGCPauseMillis200 -XX:ParallelGCThreads4 -XX:ConcGCThreads2
#设置工作目录
WORKDIR $MYPATH
#设置JAVA_HOME 环境变量后边版本对应上方安装包
ENV JAVA_HOME /usr/local/tomcat/jdk1.8.0_92
#设置CLASSPATH 环境变量
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#设置CATALINA_HOME 环境变量
ENV CATALINA_HOME /usr/local/tomcat/tomcat9
#设置CATALINA_BASE 环境变量
ENV CATALINA_BASE /usr/local/tomcat/tomcat9
#设置PATH
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#指定容器启动后执行的命令
# 初始化文件上传目录
RUN mkdir /usr/local/zhixiao
RUN mkdir /usr/local/zhixiao/file
RUN chmod arwx /usr/local/zhixiao/
VOLUME [ /usr/usr/local/zhixiao/file/, /usr/local/tomcat/tomcat9/webapps/]
# 指定容器启动时执行的脚本
ENTRYPOINT [ /usr/local/tomcat/tomcat9/bin/catalina.sh, run ]
# EXPOSE 映射端口
EXPOSE 8080构建Docker镜像
docker build -t zxht:1.0 .启动镜像
docker run -d --name zxht -p 8080:8080 zxht:1.0查看启动结果
进入容器
docker exec -it 3e703eea724e /bin/bash
cd /usr/local/tomcat/tomcat9/logs
tail -f -n 1000 catalina.2023-11-25.log可以看到配置的JVM参数生效了同时项目启动成功访问服务成功
25-Nov-2023 07:16:47.710 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file/usr/local/tomcat/tomcat9/conf/logging.properties
25-Nov-2023 07:16:47.710 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.managerorg.apache.juli.ClassLoaderLogManager
25-Nov-2023 07:16:47.710 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:HeapDumpOnOutOfMemoryError
25-Nov-2023 07:16:47.710 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx2g
25-Nov-2023 07:16:47.710 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms2g
25-Nov-2023 07:16:47.710 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmn768m
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:MetaspaceSize256m
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:MaxMetaspaceSize256m
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xss256k
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:UseG1GC
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:AlwaysPreTouch
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:-ResizePLAB
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:ParallelRefProcEnabled
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:ExplicitGCInvokesConcurrent
25-Nov-2023 07:16:47.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:MaxGCPauseMillis200
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:ParallelGCThreads4
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:ConcGCThreads2
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize2048
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgsorg.apache.catalina.webresources
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK0027
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base/usr/local/tomcat/tomcat9
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home/usr/local/tomcat/tomcat9
25-Nov-2023 07:16:47.712 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir/usr/local/tomcat/tomcat9/temp
25-Nov-2023 07:16:47.714 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
25-Nov-2023 07:16:48.044 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler [http-nio2-8080]
25-Nov-2023 07:16:48.099 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [585] milliseconds
25-Nov-2023 07:16:48.125 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
25-Nov-2023 07:16:48.125 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.64]
25-Nov-2023 07:16:48.145 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/tomcat9/webapps/ROOT.war]
25-Nov-2023 07:16:55.093 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
25-Nov-2023 07:17:03.556 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/tomcat9/webapps/ROOT.war] has finished in [15,411] ms
25-Nov-2023 07:17:03.559 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio2-8080]
25-Nov-2023 07:17:03.562 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [15462] milliseconds退出容器
ctrlD 企业实战-Docker部署SpringBoot项目
DockerFile文件编写
FROM centos:7
#将dk加入到容器
ADD jdk1.8.0_92.tar.gz /usr/local/jdk
# 声明工作目录
WORKDIR /opt
RUN mkdir -p /opt
#设置JAVA_HOME 环境变量后边版本对应上方安装包
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_92
#设置CLASSPATH 环境变量
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#设置PATH
ENV PATH $PATH:$JAVA_HOME/bin
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 传包
COPY *.jar /opt/app.jar
EXPOSE 8080
# JVM启动参数设置
ENV JAVA_OPTS\
-server \
-Xss256k \
-XX:MaxMetaspaceSize256m \
-XX:UseG1GC \
-XX:AlwaysPreTouch \
-XX:-ResizePLAB \
-XX:ParallelRefProcEnabled \
-XX:ExplicitGCInvokesConcurrent \
-XX:MaxGCPauseMillis200 \
-XX:ParallelGCThreads4 \
-XX:ConcGCThreads2 \
-Xmn768m \
-Xmx2g \
-Xms2g \
-XX:PrintGCDetails \
-XX:PrintTenuringDistribution \
-XX:PrintGCTimeStamps \
-XX:HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath/opt \
-XX:UseGCLogFileRotation \
-XX:NumberOfGCLogFiles5 \
-XX:GCLogFileSize20M
ENTRYPOINT java ${JAVA_OPTS} -jar /opt/app.jar-XX:HeapDumpOnOutOfMemoryError 是指OOM时自动生成dump文件。
倒数第二行的RUN命令创建start.sh及授权这里是为解决容器启动运行后java应用进程号等于1的问题进程号等于1会导致jstack等命令无法运行。
构建镜像 [rootVM-12-2-opencloudos tomcat]# docker build -t pc:1.0 . 启动镜像
docker run -d -p 8080:8080 --name pc pc:1.0 问题复盘
1、only whitespace content allowed before start tag and not ^ (position: START_DOCUMENT seen ^… 1:1) 重新删除问题jar包所在目录文件重新刷新mvn下载文件即可 2、Groovy和java并存的web项目打包失败 参考地址: https://blog.csdn.net/zzfengxia/article/details/81978714 总结
1.编写Dockerfile这是镜像构建的说明文件。它包含了构建步骤、依赖项、环境变量、命令和其它需要在运行时配置的信息。
2.构建镜像当Dockerfile编写完毕后使用docker build命令构建镜像。
3.运行容器使用docker run命令启动容器并运行应用程序。
4.配置网络和端口在容器内部以及容器和外部网络之间传输数据需要配置网络和端口。
5.数据管理在容器内部生成的文件和数据需要跨容器和主机存储和管理。
6.监控和日志当容器运行时需要监控日志和性能指标来确保正常运行。
7.更新和维护镜像和容器需要不断更新和维护以确保应用程序始终保持在最新的环境中运行。
总之使用Docker镜像部署可以更加轻松、快捷地部署应用程序并且可以帮助开发团队更好地管理和维护应用程序。