首页 > 服务器维护 > 云和虚拟化

Docker部署springboot项目到腾讯云的实现步骤

发布时间:2022-4-8 22:18 作者:月复西斜

服务器的配置

服务器配置总结为三个,防火墙,端口,和安全组

1、防火墙

查看防火墙状态

firewall-cmd --state

image-20220321181344728

没有开启则开启防火墙

systemctl start firewalld.service

image-20220321181438803

2、端口

添加对外开放的端口

firewall-cmd --zone=public --add-port=端口号/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent

image-20220321181656834

重新加载防火墙

firewall-cmd --reload

查看开发端口

firewall-cmd --list-ports

image-20220321181845037

3、安全组 (云服务器才配置的,如我用的腾讯云)

安全组是一种虚拟防火墙,具备有状态的数据包过滤功能,用于设置云服务器、负载均衡、云数据库等实例的网络访问控制,控制实例级别的出入流量,是重要的网络安全隔离手段。
您可以通过配置安全组规则,允许或禁止安全组内的实例的出流量和入流量。(截取自腾讯云的文档)

image-20220321182316698

image-20220406203041666

安装MySql

1、拉取mysql版本,这里是mysql5.7

docker pull mysql:5.7

2、运行mysql,开放的端口是3306,密码是123456, -d是后台运行

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

image-20220321184343096

2.1 如果报错,就重启docker

systemctl restart docker

如果还报错如:已有该容器

image-20220321184653697

2.2 查看容器,删除容器

查看正在运行的容器:	docker ps
查看所有容器:	  docker ps –a
查看最后一次运行的容器:	docker ps –l
查看停止的容器:	docker ps -f status=exited

docker rm 容器名称(容器ID)例如:docker rm mysql

3、进入MySQL容器,有如下就说明mysql没有问题,安装成功!!

docker exec -it 容器id /bin/bash

image-20220321185621800

ctrl+p+q可以以后台运行的方式退出这个容器

4、本地的MySQL可视化软件连接docker的数据库(我用的是sqlyog)

image-20220406203127245

执行sql脚本,导入数据库

image-20220406203204879

将springboot项目打成jar包

1、将applicayion.yml中的url中的localhost改成你服务器的公网ip,还有将密码改成你服务器上mysql的密码

image-20220406203230650

2、项目打包,双击package

image-20220321220248818

如下就打包成功,用的是第一个jar包。

.jar.original 是普通jar包,不包含依赖
.jar是可执行jar包,包含了pom中的所有依赖,可以直接用java -jar 命令执行

image-20220321220609206

编写Dockfile文件

将springboot jar包项目打包成Docker镜像

1、在 /home/下创建docker文件夹

image-20220406203308781

2、使用xftp上传jar包到/home/docker/

image-20220406203330619

3、在/home/docker目录下,输入如下指令,开始编写Dockerfile文件

vim Dockerfile

image-20220321222503458

在vim中编写如下内容保存

FROM java:8
ADD Blog_jpa-0.0.1-SNAPSHOT.jar /blog.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/blog.jar"]

image-20220321222832228

解释:

#注意,docker命令全部大写,这是规定。
#   From 关键字表示,jar包依赖的环境。java:8  相当于jdk1.8
FROM java:8
 
#ADD命令 
#   blog-0.0.1-SNAPSHOT.jar:这是你上传jar包的名称。
#   /blog.jar:这是自定义的名称。但是注意要有之前的/
ADD blog-0.0.1-SNAPSHOT.jar /blog.jar
 
#MAINTAINER  作者名称。可以删除不写。
MAINTAINER zhangxiaosan
 
#EXPOSE 项目暴露的端口号
EXPOSE 8080
 
#/blog.jar此处的名称要和ADD命令后面的一样。
ENTRYPOINT ["java","-jar","/blog.jar"]

4、在docker文件夹下执行如下命令,生成自定义镜像

docker build -t blog:1.0 .

解释:
说明:
  blog   代表要打包成的镜像名称。按照自己实际情况写。
  :1.0   代表版本号,可以不写则默认为latest
  .    代表为当前目录。这就是为什么一直在步骤一文件夹中进行操作,并且Dockerfile在此文件夹中的原因。
若之前Dockerfile不在步骤一的文件夹中 则需要指定到对应的地址。

image-20220406203352838

5、docker images 就可以查看到这个镜像已经被创建好了,然后运行这个镜像就可以。

image-20220406203408945

docker run --name blog -d -p 80:8080 blog:1.0

image-20220321223803775

docker logs 容器id 查看容器运行日志

image-20220406203421067

部署完成!!!

访问

image-20220321235121387

删除重做(更新)镜像

更新了项目,把原来部署的jar包删除,容器镜像都删除,然后将新的jar放到 /home/docker 下,在运行生成新镜像

1、删除原来的项目jar包的容器和镜像

可以按照镜像id删除镜像,命令如下:docker rmi 镜像ID
删除单个镜像(-f 强制删除):docker rmi  -f 镜像ID

1.	删除指定的容器:
docker rm 容器名称(容器ID)
例如:docker rm mycentos11
2.	删除容器的时候,如果容器在运行,会报错,必须先停止容器
# 查看正在运行的容器
docker ps
# 删除正在运行的容器
docker rm mycentos11
# 停止容器
docker stop mycentos11
启动容器
docker start 容器名称(或者容器ID)
例如: docker start mycentos2
# 查看所有容器
docker ps -a

image-20220406203439360

2、将jar包更新后,生成新镜像

docker build -t blog:1.0 .

3、运行镜像

docker run --name blog -d -p 80:8080 blog:1.0

到此这篇关于Docker部署springboot项目到腾讯云的实现步骤的文章就介绍到这了,更多相关Docker部署springboot到腾讯云内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.csdn.net/qq_45652428/article/details/123999282

标签:[!--infotagslink--]

您可能感兴趣的文章: