linux自动部署--docket部署spring web和springboot项目

本文介绍了如何使用Docker进行Spring Web和SpringBoot项目的部署,详细阐述了Docker的安装过程,以及针对两种类型项目创建Dockerfile、构建镜像和运行容器的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docket部署spring web和springboot项目

1.docket安装及部署

参考:https://www.runoob.com/docker/centos-docker-install.html

https://www.jianshu.com/p/ab0de243736a

#docker随机器自启动
sudo systemctl enable docker
sudo systemctl status docker
#docker常见命令
#docker是否启动及版本
sudo docker version
#查看docker容器
sudo docker ps
#来列出本地主机上的镜像
sudo docker images 
#查找镜像:
sudo docker search nginx
#拉取镜像
sudo docker pull nginx
#列出容器:
sudo docker container ls -a
#进入容器:
sudo docker exec -it c1a7be275a4a  /bin/bash
#后台启动docker容器,-d 表示后台运行容器,并返回容器ID
-p 使用端口映射,表示将容器的端口映射到主机的端口--name 表示容器名字
sudo docker run --name test-jar-docker -d -p 8070:8080 test-jar
#查看日志
sudo docker logs -f bf08b7f2cd89
#停掉容器
sudo docker stop 4ed05d421b8d或者
sudo docker stop adoring_hamilton

2.docket部署spring web

准备jdk及web 、jar、Dockerfile等安装包:
在这里插入图片描述

2.1.准备Dockerfile
FROM                 centos
ADD  jdk-8u162-linux-x64.tar.gz  /usr/local/
ADD  apache-tomcat-9.0.21.tar.gz  /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_162
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.21
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.21
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
ADD ./test-web.war /usr/local/apache-tomcat-9.0.21/webapps
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.21/bin/catalina.sh run
2.2.构建镜像

命令:(注意最后的 .)该命令会在当前目录下寻找Dockerfile文件,并自动完成构建。-t webapp 表示给构建完成的镜像取一个名字。

docker build -t test-web . 

在这里插入图片描述

2.3.运行容器
sudo docker run --name test-web-docker -d -p 8060:8080 test-web

3.docket部署springboot项目

3.1.准备Dockerfile,Tomct、JDK的安装包以及java项目的War包
FROM                 centos
ADD jdk-8u162-linux-x64.tar.gz   /usr/local/
ADD test-jar-0.0.1-SNAPSHOT.jar  /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_162
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
CMD java -jar /usr/local/test-jar-0.0.1-SNAPSHOT.jar
3.2.构建镜像

命令:(注意最后的 .)该命令会在当前目录下寻找Dockerfile文件,并自动完成构建。-t webapp 表示给构建完成的镜像取一个名字。

docker build -t test-jar . 
3.3.运行容器
sudo docker run --name test-jar-docker -d -p 8070:8090 test-jar

本地镜像:
在这里插入图片描述
启动后查看容器:
在这里插入图片描述
查看容器日志:
在这里插入图片描述
在这里插入图片描述
进入容器查看:
在这里插入图片描述

### 在Linux环境中使用Docker部署Spring Boot项目的教程 #### 准备工作 为了确保能够顺利地在Linux环境下的Docker中运行Spring Boot应用程序,需先确认已安装并配置好Docker服务。此外,还需准备好要打包成容器的Spring Boot应用。 #### 创建Spring Boot项目 创建一个新的Spring Boot项目或者利用现有的项目文件夹作为起点。对于已有项目,确保其结构符合Maven或Gradle的标准布局,并且包含`pom.xml`或`build.gradle`构建脚本以及入口类带有`@SpringBootApplication`注解[^2]。 ```java @SpringBootApplication public class DockerApplication { public static void main(String[] args) { SpringApplication.run(DockerApplication.class, args); } } ``` #### 编写Dockerfile 在一个名为`Dockerfile`的新文本文件内定义用于构建镜像所需的指令集。此文件通常位于项目的根目录下: ```dockerfile FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 这段代码指定了基于Alpine Linux版本的基础OpenJDK 8映像来执行Java程序;设置了一个临时卷以支持某些类型的日志记录其他操作系统的特性差异;复制编译后的`.jar`文件到容器内的指定位置;最后设置了启动命令以便于当容器被激活时自动加载并运行该Jar包中的主函数[^4]。 #### 构建推送Docker镜像 完成上述准备工作之后,在终端窗口进入含有`Dockerfile`的工作空间路径,接着输入如下命令生成自定义标签名的本地私有仓库镜像: ```bash docker build -f ./Dockerfile -t springboot-app . ``` 如果打算分享给他人,则可以考虑将新建立好的镜像推送到公共注册中心(如Docker Hub),这需要提前登录账号并通过特定命名规则标记目标地址: ```bash docker tag springboot-app username/springboot-app:v1 docker push username/springboot-app:v1 ``` #### 运行容器实例 一旦拥有了可用的Docker镜像,便可以通过下面的方式快速拉起一个独立的服务进程: ```bash docker run -d -p 8080:8080 --name my-spring-boot-app springboot-app ``` 这里假设宿主机开放端口8080供外部访问内部Web服务器监听相同编号的位置。参数`-d`表示以后台守护模式开启任务流程;而`--name`则赋予此次会话独一无二的身份标识符方便后续管理维护[^1]。 #### 数据持久化及其他高级选项 考虑到实际应用场景可能涉及到数据库交互或者其他形式的状态保存机制,因此建议采用挂载方式把重要资料存储于物理磁盘而非仅限内存之中。例如,针对两个不同业务模块分别设定对应的上传路径: ```bash mkdir -p /opt/docker-build/yshop-admin && mkdir -p /opt/docker-build/yshop-app docker run ... \ -v /opt/docker-build/yshop-admin:/var/lib/admin-data \ -v /opt/docker-build/yshop-app:/var/lib/app-data ... ``` 这样做的好处在于即使将来更换新的容器也不会丢失之前积累下来的数据资产。另外,还应该关注性能调优方面的话题,比如合理分配CPU核心数、内存大小等资源配额限制措施,从而保障整个集群架构稳定高效运作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值