Docker部署SpringBoot项目

本文详细介绍了使用Docker部署Spring Boot项目的全过程。包括创建Spring Boot项目、添加Docker相关配置,在Linux下安装Docker、JDK和MAVEN,最后将项目打包并使用Docker部署,还说明了镜像和容器的查看、运行、停止及删除操作。

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

一、创建一个简单的SpringBoot项目

1、直接访问http://start.spring.io/,自动生成SpringBoot项目,创建的时候直接选择了web模块

<parent>
    <groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.0.4.RELEASE</version>
	<relativePath/>
</parent>
<groupId>com.dockerProject</groupId>
<artifactId>docker</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>docker</name>
<description>Demo project for Spring Boot</description>
<dependencies>
	<dependency>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-web</artifactId>
	</dependency>

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

2、创建一个DockerController,

3、启动项目,浏览器访问http:localhost:8080/docker,页面输出Hello Docker,说明SpringBoot项目配置一切正常。

二、SpringBoot项目添加Docker相关配置

1、pom.xml中添加docker插件

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>

		<!-- Docker maven plugin -->
		<plugin>
			<groupId>com.spotify</groupId>
			<artifactId>docker-maven-plugin</artifactId>
			<version>1.1.1</version>
			<configuration>
				<imageName>springboot/${project.artifactId}</imageName>
				<dockerDirectory>src/main/resources/docker</dockerDirectory>
				<resources>
					<resource>
						<targetPath>/</targetPath>
						<directory>${project.build.directory}</directory>
						<include>${project.build.finalName}.jar</include>
					</resource>
				</resources>
			</configuration>
		</plugin>
		<!-- Docker maven plugin -->
	</plugins>
</build>

2、在项目的src/main/resources/docker下创建Dockerfile,该文件是用来说明如何构建Docker镜像的 

      

      Dockerfile是用来说明Docker镜像构建的相关的信息,里面是一些指令,Docker会从Dockerfile文件中从上到下执行指令,在该文件中#是注释。Dockerfile第一条指令必须为FROM。

FROM openjdk:8-jdk-alpine
MAINTAINER testDocker
ADD *.jar app.jar
CMD java -jar app.jar

FROM:指定基础镜像,必须为第一个命令,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载

MAINTAINER: 维护者信息,可以写自己的名字或者邮箱

ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget

CMD:构建容器后调用,也就是在容器启动时才进行调用。

大致介绍我使用到的,需要详细的各种用法的可以百度一下Dockerfile指令详解

三、在Linux下安装Docker

1、安装docker,yum -y install docker

2、启动docker,并设置为开机自启

systemctl  start docker
systemctl  enable docker

3、使用Docker 中国加速器,vim /etc/docker/daemon.json

在daemon.json最后面加上:

{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true
}

4、重启docker,systemctl restart docker

5、输入docker version,出现以下则代表成功

      

四、Linux下安装JDK

1、登录Oracle官网下载Linux环境下的jdk1.8的压缩包,jdk-8u211-linux-x64.tar.gz

2、解压,tar vxf jdk-8u211-linux-x64.tar.gz

3、配置环境变量,vim /etc/profile,在最后加上

export JAVA_HOME=/usr/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

4、修改完成之后,使其生效,source /etc/profile

5、输入java -version 返回版本信息则安装正常。

五、Linux下安装MAVEN

1、登录Apache官网下载maven压缩包,apache-maven-3.5.4.tar.gz

2、解压,tar vxf apache-maven-3.5.4.tar.gz

3、配置环境变量,vim /etc/profile,在最后加上

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=${PATH}:${MAVEN_HOME}/bin

4、修改完成之后,使其生效,source /etc/profile

5、输入mvn -version 返回版本信息则安装正常。

六、使用Docker部署jar包项目

1、将SpringBoot项目拷贝到服务器中,进入该项目的根目录,运行mvn package,将项目进行打包

2、使用Dockerfile构建镜像,mvn package docker:build

当看到以下内容的时候表明构建成功:

3、使用docker images命令查看已经存在的镜像: 

4、运行该镜像,docker run -p 8086:8086 -t springboot/docker,因为我8080端口被占用了,所以我就使用了8086端口

注意:该命令的第一个端口是容器暴露给外部访问用的,当你启动以后访问的时候,必须访问第一个端口,然后第一个端口访问第二个端口对应已经启动的服务。如果你创建的SpringBoot项目配置的端口是8081,然后你运行这个命令,也能启动,但是你却访问不到,因为你访问容器的8086端口,它会找运行端口为8086的项目,而你的项目运行在8081上,无法找到。而且你直接访问8081也访问不到,因为放在了容器内运行了。

5、运行docker ps,可以看到已经处于运行中了

6、浏览器访问192.168.9.75:8086/docker可以看到显示了Hello Docker 

 

7、若想停止运行该项目,则运行docker stop CONTAINER ID,CONTAINER ID在上图能找到,就是容器id

再运行docker ps,可以看到没有运行的镜像了。

 

8、若本地镜像过多想删除,也可以删除,但是前提是先删除该镜像的容器,删除容器之前先把容器停掉

docker images,查看全部镜像

docker ps -a,查看所有的容器

doceker rm + 容器id,删除容器

doceker rmi +镜像id,删除镜像 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值