Docker学习总结(详细记录Docker部署SpringBoot项目内容,含安装、配置、部署整个过程)

本文详述了在Centos8环境下,使用Docker进行SpringBoot项目部署的全过程,包括Docker的安装、配置,以及SpringBoot项目的打包、Dockerfile编写、镜像构建和容器运行。通过实例展示了Docker如何简化应用部署,解决环境配置问题。

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

        简明:本文详细记录个人在学习使用Docker对SpringBoot项目部署过程中的笔记,以及出现问题的解决方案。(手动部署)(供以后使用到进行复习)

      (已测试整个过程,最终成功访问

      (个人记录学习总结内容,若出现错误/改进地方,请指出/分享,共同学习进步!!!)

一、简要说明:

1、简介:

       Docker可比喻成一个装应用的容器,将应用及其依赖文件、数据等打包在容器内,直接运行容器即可把应用运行起来,而无需关心环境配置问题。

2、Docker所解决的问题:

      通常情况下,一个应用正常启动时,可能需要的环境要有JDK、Tomcat服务器和配置文件等等,同时又要需要考虑版本兼容问题,若出现部分配置未弄好可能导致应用无法启动。Docker就是将其集成一个容器内,解决所出现的问题。

      如:在Linux上安装JDK/MySQL时,需要下载不同的Jar包,再加上配置不同的信息内容;而使用Docker只需要一条命令 docker pull mysql/java 即可。

3、基础内容:

      三个概念:仓库、镜像、容器

      仓库:集中存放镜像文件的地方,可想象成Gitee仓库存放代码一样。
  (国外最大的开发仓库 Docker Hub,国内较为知名的是阿里云、网易云(需要配置镜像加速))

      镜像:一系列所需要运行的文件/环境,可想象成Jar包、MySQL、JDK等。

      容器:可看作是一个简装的Linux系统,可以独立运行一个/多个应用。

      个人理解:Docker将应用及其依赖打包成一个总的镜像里面,通过docker命令,将镜像生成容器,程序就是在这个容器里面运行的,无需关心环境问题。

二、Docker安装与配置:

    安装环境:Centos8、Linux操作系统

    使用工具:Xftp 7

1、安装依赖(su root 命令切换到root用户情况下操作)

yum install -y yum-utils device-mapper-persistent-data lvm2

 2、添加yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3、安装docker-ce

4、安装完成

5、启动Docker,同时可设置开机自启动

# 启动Docker
systemctl start docker
# 设置开机自启动
systemctl enable docker

6、验证安装是否成功

#  验证安装是否成功
docker version

三、部署SpringBoot项目

1、在pom.xml文件,引入Docker插件(否则导致无法运行该项目镜像所生成的容器

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
				<!-- 指定该Main Class为全局的唯一入口 -->
				<mainClass>com.lbf.Application</mainClass>
				<layout>ZIP</layout>
			</configuration>
			<executions>
				<execution>
					<goals>
						<!--可以把依赖的包都打包到生成的Jar包中-->
						<goal>repackage</goal>
					</goals>
				</execution>
			</executions>
			</plugin>
		</plugins>
	</build>

 2、测试类

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 *  Docker  测试类
 *
 *  @author LBF
 *  @date 2022/2/8 17:04
 */
@RestController
@RequestMapping("/v1/dockers")
public class DockerController {

    // 请求地址:http://localhost:8080/v1/dockers/get
    @GetMapping("/get")
    public String docker(){
        return "Docker测试成功!!!";
    }
}

 3、打包SpringBoot项目(利用Idea中集成的Maven工具----->package

 4、打包结果(Jar包形式

 5、编写Dockerfile文件(Docker通过读取该文件配置信息,将镜像生成相应的容器

Docker首先会从本地查询所需要的镜像文件,若没有,则从仓库拉取;若有,则不拉取。

# 基础镜像,即运行环境 JDK 8(与SpringBoot项目中的JDK版本尽量保持一致)
FROM java:8
# SpringBoot内嵌的Tomcat容器默认使用该 /tmp 作为工作目录
VOLUME /tmp
# 拷贝文件(SpringBoot项目打包的Jar包名)并重命名(另起一个新名字)
ADD docker-1.0.jar docker.jar
# 不是真正的访问端口(标识SpringBoot项目访问端口,告知部署人员要开发的端口号)(只是标记作用,可无)
EXPOSE 8080
# 容器启动时的命令(等价于 java -jar xxxx.jar)
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker.jar"]

6、上传文件到Linux文件夹内(此处利用 Xftp 7工具 上传
                (注意:Jar包与Dockerfile文件必须放在同一个文件夹内)

7、构建容器( 镜像文件(Jar包及环境) --------> 容器

8、运行容器

-d:后台运行容器,表明SpringBoot项目在此可以进行后台运行程序。

--name:对所构建的容器新取一个名字(dokcer1

-p:将容器内部的8080端口映射(编写Dockerfile文件)到SpringBoot项目内的访问端口。

f0789f99cf8b:表示所构建的镜像名称

9、查看当前所运行的容器信息

CONTAINER ID:所构建的容器ID

IMAGE:镜像名称

10、查看运行日志内容

11、访问SpringBoot项目

四、总结

       本文记录个人学习Docker的总结内容,安装、配置和部署等内容,在过程中,应注意命令不要写错,加上Docker插件等问题,若出现理解不到位的地方,请多指出。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值