Centos中Docker安装及SpringBoot项目部署

1.Docker 名词

名词解释

名词解释说明
镜像(image)docker镜像是一个模板,通过这个模板来创建多个容器服务
容器(container)Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的
仓库(repository)存放镜像的地方,类似maven仓库。分为共有和私有

2.Docker安装以及镜像、容器 常见命令

安装命令:

yum install docker

启动docker:

systemctl start docker.service

设置开机启动

systemctl enable docker.service

查看版本:

docker version

镜像命令:

docker images 查看本地所有镜像
docker search 搜索仓库中的镜像
docker pull 下载镜像
docker rmi 删除镜像

容器命令:

docker run[可选参数] image 新建容器并启动
–name 容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器端口 e g:8080:8080
docker ps 查看所有正在运行的容器
-a 会显示历史运行过的容器
-n=? 显示最近创建的容器
-q 只显示容器的编号
exit 停止退出交互模式容器
Ctrl + P + Q 不停止退出容器
docker rm 删除容器(不能删除正在运行的容器,需要加-f)
docker rm -f $(docker ps -aq) 删除所有容器
docker start [container id] 启动容器
docker restart [container id] 重启容器
docker stop [container id] 停止当前运行容器
docker kill [container id] 强制停止当前容器

常用其他命令:

docker logs 查看日志
docker top 查看容器中进程信息
docker inspect 查看容器元数据
docker exec -it [容器id] /bin/bash 进入当前正在运行的容器(新的终端)
docker attach 进入当前正在运行的容器(容器正在执行的终端)
docker cp 容器id:容器内路径 目的主机路径 从容器内拷贝文件到主机

3.Dockerfile知识梳理:

FROM #基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的,名字+邮箱
RUN #镜像构建的时候被需要运行的命令
ADD #步骤,tomcat镜像,这个tomcat压缩包,添加内容
WORKDIR #镜像的挂载目录
VOLUME #挂载的目录
EXPOST #保留端口配置
CMD #指定这个容器启动的时候要运行的命令,只有之后一个会生效,可被替代
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
COPY #类似ADD,将我们文件拷贝到镜像中
ENV #构建的时候设置环境变量
在这里插入图片描述

4.Docker将jar包制作为镜像,在Docker环境运行

首先我们将一个简单的Springboot项目打包成jar

然后将项目上传至Linux系统

系统提前装好docker环境

首先我们将准备的xxx.jar,Dockerfile拷贝到我们的CentOS 7机器上

下图idea 进行打好的包

img

我们拷贝的路径为:

/usr/local/test

先查询下jdk源:

docker search java

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fQzNDVm2-1652335755134)(C:\Users\Yuntai1\AppData\Roaming\Typora\typora-user-images\1652176601970.png)]

编写的Dockerfile文件为:

FROM docker.io/ascdc/jdk8
VOLUME /tmp
ADD ToolApi-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]

上面命令的相关解释:

从docker仓库获取jdk作为我们项目的容器
VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/usr/local/test目录下创建了一个临时文件,并连接到容器的/tmp。
项目的ToolApi-0.0.1-SNAPSHOT.jar 作为app.jar添加到容器。
ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向/dev/urandom 作为 Entropy Source

构建Docker镜像

我们在/usr/local/dev目录下,执行Docker的命令来构建镜像。

docker build -t test/spring-boot-docker-t:latest .

这个命令就是使用Dockerbuild命令来构建镜像,并给镜像起了一个名字ludashi/spring-boot-docker-t其TAGlatest在当前文件夹下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cp3WcOyy-1652335755138)(C:\Users\Yuntai1\AppData\Roaming\Typora\typora-user-images\1652334996625.png)]

我们使用docker images来查看所有的镜像

docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-owhSgABj-1652335755142)(C:\Users\Yuntai1\AppData\Roaming\Typora\typora-user-images\1652335164952.png)]

我们发现镜像列表里面有我们生成的镜像test/spring-boot-docker-t

ps补充删除镜像命令

docker rmi test/spring-boot-docker-t

运行镜像
镜像构建成功之后,就可以运行容器了:

docker run -d --name spring-boot-docker -p 8899:8899 test/spring-boot-docker-t

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-haf6sz5r-1652335755143)(C:\Users\Yuntai1\AppData\Roaming\Typora\typora-user-images\1652335232764.png)]

这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always 这块可不执行

docker run -d --restart=always --name ToolApi-0.0.1-SNAPSHOT -p 8899:8899 test/spring-boot-docker-t

然后已经运行的docker容器怎么设置自动重启? 执行下面命令:

 docker update --restart=always ToolApi-0.0.1-SNAPSHOT

然后docker ps 看看你的容器有没有在运行即可

docker ps

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uyBFLDNm-1652335755146)(C:\Users\Yuntai1\AppData\Roaming\Typora\typora-user-images\1652335295516.png)]

ps 补充删除容器:

(先停止对应容器再去删除对应容器)

docker stop 4ef5343ddd32

docker rm 4ef5343ddd32(对应docker ps 的CONTAINER_ID)

docker logs --tail 300 -f spring-boot-docker-t 查看启动日志

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rEgb3agr-1652335755148)(C:\Users\Yuntai1\AppData\Roaming\Typora\typora-user-images\1652335435273.png)]

访问浏览器:

img

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 Jenkins 和 Docker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令: 1. 在 CentOS 安装 DockerDocker Compose ```bash # 安装 Docker sudo yum update sudo yum install docker # 安装 Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 2. 在 CentOS 拉取 Docker 镜像 ```bash # 从 Docker 仓库拉取镜像 sudo docker pull your-docker-registry/image-name:tag ``` 3. 在 CentOS 运行 Spring Boot 镜像 ```bash # 运行 Spring Boot 镜像 sudo docker run -d -p 8080:8080 your-docker-registry/image-name:tag # 如果你的 Spring Boot 应用需要使用数据库,你需要为其配置一个数据库服务。你可以使用 Docker Compose 来管理容器编排。 # 在服务器上创建一个文件夹来存储 Docker Compose 配置文件 mkdir ~/docker-compose # 在该文件夹创建一个 docker-compose.yml 文件 nano ~/docker-compose/docker-compose.yml # 编辑该文件并添加以下内容: version: "3" services: app: image: your-docker-registry/image-name:tag ports: - "8080:8080" db: image: postgres environment: POSTGRES_USER: your-db-user POSTGRES_PASSWORD: your-db-password POSTGRES_DB: your-db-name # 启动 Docker Compose cd ~/docker-compose sudo docker-compose up -d # 如果你需要停止 Docker Compose sudo docker-compose down ``` 4. 在 Jenkins 配置 Maven 插件和 Docker 插件 - 在 Jenkins 安装 Maven 插件和 Docker 插件。 - 在 Jenkins 配置 Docker 插件,确保 Jenkins 可以与 Docker 交互。 5. 在 Jenkins 创建一个新的构建项目 - 在 Jenkins 创建一个新的 Maven 项目,并配置 Git 代码库以获取源代码。 - 在构建项目配置 Maven 构建步骤,构建出可执行的 Spring Boot jar 包。 - 在构建项目添加一个后置操作步骤,使用 Docker 插件进行 Docker 镜像的构建。你需要为 Docker 镜像指定一个名称和标签,并指定构建上下文。 - 在构建项目添加另一个后置操作步骤,使用 Docker 插件将构建好的镜像推送到 Docker 仓库。 6. 在目标服务器上使用 Docker 运行 Spring Boot 镜像 - 在目标服务器上拉取构建好的 Spring Boot 镜像。 - 在目标服务器上使用 Docker 运行 Spring Boot 镜像,你可以使用 Docker Compose 或 Docker Stack 进行容器编排和管理。 以上是使用 Jenkins 和 Docker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值