使用Docker部署SpringBoot项目(避坑+超级详细版本)

使用Docker部署SpringBoot项目(避坑+超级详细版本)

所有文章不设限,我们相遇偶然,相散坦然,互不打扰,各自安好,向阳而生

首先呢,非常感谢我们一起相遇在这个地方,想必此刻的你也是在一个学习求知的过程,我们一样,我们都是在求知的路上匍匐前进!看到这篇文章,我只希望您能和我一起,安静的看完这篇文章,学有所获,解决您的困惑,让您的时间付出值得!很感谢我们的相遇,祝福我们,明天会更好!如果有困惑,请留言!

1.确定Centos的版本

首先呢,我们确定一下Centos的版本,这一步是非常重要的,一个良好的开始是成功的一半,不然后期我们启动docker怎么也都启动不起来,那就是这里的坑

[WangHui@WangHui ~]$ cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

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

2.配置yum源

因为我们如果使用yum update命令升级所有包同时也升级软件和系统内核,将会非常慢,所以使用国内的yum源,速度将会是非常可爱的,下来我们就配置一下

首先做一个备份,以防万一,如果我们配置失败了,还能恢复人家原来的镜像源

[root@WangHui /]# mkdir /my_prepare
[root@WangHui /]# cp -r  /etc/yum.repos.d /my_prepare/
[root@WangHui /]# cd /etc/yum.repos.d/
[root@WangHui yum.repos.d]# ls
]                CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
Centos-7.repo    CentOS-CR.repo         CentOS-Media.repo      CentOS-x86_64-kernel.repo
Centos-7.repo.1  CentOS-Debuginfo.repo  CentOS-Sources.repo    docker-ce.repo
[root@WangHui yum.repos.d]# 

在这里插入图片描述

接下来我们下载阿里云的镜像源,千万看清楚了,自己的Centos是7还是8,别下载错了

方法一:如果手速不快,yum还能用,那就使用wget安装吧

[root@WangHui /]# yum install wget -y
[root@WangHui /]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

方法二:如果你手速快,已经损毁了yum源,那就这样吧

[root@WangHui /]# curl -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

在这里插入图片描述

有时候,走错一步,下一步就会变得艰难,但是请不要一直遗憾抱怨,去寻找方法,去解决困境,走出来才是最重要的

然后我们清理一下缓存

[root@WangHui /]# yum clean all
[root@WangHui /]# yum makecache

在这里插入图片描述

3.更新软件包和系统版本

我的已经更新过了,就只作为演示哈,大家一定要按照步骤来

[root@WangHui ~]# yum update 
已加载插件:fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository contrib is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
No packages marked for update
[root@WangHui ~]# 

在这里插入图片描述

4.卸载旧版本

为了以防万一,造成后期莫名错误。我们这里先提前对于这些老旧顽固分子进行卸载
有时候呢,许多事情过去就是过去,请千万不用藕断丝连,不要给自己留有幻想,实际一些,显示一点,明白差距,然后前行!

 [root@WangHui ~]# yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

在这里插入图片描述

5.安装一系列预备软件

我已经安装过啦,还是只作为演示哈,相信大家一定可以做得很好地,加油鸭!

[root@WangHui ~]# yum -y install gcc  gcc-c++ yum-utils -y

在这里插入图片描述

6.设置stable镜像仓库

还是老道理,金窝银窝不如自己的不如自己的狗窝,哪里好都没有祖国好,所以我们使用我们自己的镜像仓库,不仅快,也因为我们说的是汉语,我们是中国人!

[root@WangHui ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

在这里插入图片描述

但是作为科学,我们又是认真的。使用默认的国外镜像仓库有以下问题

报错:

1 [Errno 14] curl#35 - TCP connection reset by peer

2 [Errno 12] curl#35 - Timeout

7. 更新yum软件包索引

[root@WangHui ~]# yum makecache fast

有点像第二步的哈,确实有点类似,可以研究一下哈

在这里插入图片描述

8.安装DOCKER CE

[root@WangHui ~]# yum -y install docker-ce docker-ce-cli containerd.io

在这里插入图片描述

速度还是杠杠滴,所以说嘛,还是祖国好!如果不认可,请执行 rm -rf /* ,然后离开,谢谢!

9.启动docker

[root@WangHui ~]# docker version //查看版本
[root@WangHui ~]# systemctl start docker //启动
[root@WangHui ~]# systemctl status docker //查看状态
[root@WangHui ~]# systemctl stop docker  //停止
[root@WangHui ~]# systemctl enable docker	//开机自启

启动之前先看看version

在这里插入图片描述

没嘛达哈
在这里插入图片描述

帮助启动类命令

· 启动docker: systemctl start docker

· 停止docker: systemctl stop docker

· 重启docker: systemctl restart docker

· 查看docker状态: systemctl status docker

· 开机启动: systemctl enable docker

· 查看docker概要信息: docker info

· 查看docker总体帮助文档: docker --help

· 查看docker命令帮助文档: docker 具体命令 --help

10.创建SpringBoot项目(测试使用)

我们选择SpringBoot快速生成项目
在这里插入图片描述

选中web工程,这样我们可以避免自己写Get和Post请求进行测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VqH0aWBM-1680699635336)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230405195801491.png)]
在这里插入图片描述

11.启动项目进行测试

在这里插入图片描述
浏览器客户端访问
在这里插入图片描述

12.此处提供几个非常好的插件,供大家参考

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8zeSOk2A-1680699635339)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230405200912281.png)]在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

13.配置docker, Docker开启远程访问

[root@WangHui ~]# vim /usr/lib/systemd/system/docker.service
# 在ExecStart=/usr/bin/dockerd追加
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
[root@WangHui ~]# systemctl stop firewalld.service //关闭防火墙(切记切记,端口无法访问要检查防火墙)

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

# 重新启动
[root@WangHui ~]# systemctl daemon-reload
[root@WangHui ~]# systemctl restart docker

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

尝试访问

输入 ip addr查看自己虚拟机的ip地址,如果有误,请网上寻找虚拟机网络配置教程

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

远程访问测试

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

14.IDEA的docker插件配置远程

tcp://虚拟机IP:端口号 ,参考-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock,端口与此一致

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

15.项目打包(此处有坑)

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

本地测试报错,缺乏主要资源

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

如果直接使用docker打包运行就会报 no main manifest attribute, in /app.jar

此错误是由于该版本太低,太高打包直接报错,所以要与jdk版本匹配

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

太高

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

正确版本对应

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

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

pom中使用该源码替换,让自己去匹配

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

然后clean,再重新打包

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

正确情况

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

启动成功

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

16.编写Dockerfile

FROM openjdk:8-jdk-alpine
ADD ./mydemo0127-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java","-jar","app.jar"]

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

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

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

17.运行dockerfile

在这里插入图片描述

18.启动容器

[root@WangHui ~]# docker images //查看镜像
REPOSITORY   TAG            IMAGE ID       CREATED         SIZE
wr0127       latest         0c9066443b55   4 minutes ago   122MB //镜像名
openjdk      8-jdk-alpine   a3562aa0b991   3 years ago     105MB //拉取的jdk包
docker run -it -p 代理端口号:原端口号 --name=容器名 镜像名/可用镜像id代替
[root@WangHui ~]# docker run -it -p 521:8080 --name=love love

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZFGAqOSz-1680699635352)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230405205817496.png)]
在这里插入图片描述

  • 13
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT小辉同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值