Docker部署springboot项目到腾讯云(云服务器)

Docker部署springboot项目

    • Docker部署springboot项目
      • 服务器的配置
      • 安装MySql
      • 将springboot项目打成jar包
      • 编写Dockfile文件
      • 访问
      • 删除重做(更新)镜像

Docker部署springboot项目

服务器的配置

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

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

Docker部署springboot项目到腾讯云(云服务器)_第1张图片

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

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

Docker部署springboot项目到腾讯云(云服务器)_第2张图片

Docker部署springboot项目到腾讯云(云服务器)_第3张图片

安装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

Docker部署springboot项目到腾讯云(云服务器)_第4张图片

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

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

Docker部署springboot项目到腾讯云(云服务器)_第5张图片

执行sql脚本,导入数据库

Docker部署springboot项目到腾讯云(云服务器)_第6张图片

将springboot项目打成jar包

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

Docker部署springboot项目到腾讯云(云服务器)_第7张图片

2、项目打包,双击package

Docker部署springboot项目到腾讯云(云服务器)_第8张图片

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

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

Docker部署springboot项目到腾讯云(云服务器)_第9张图片

编写Dockfile文件

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

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

Docker部署springboot项目到腾讯云(云服务器)_第10张图片

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

Docker部署springboot项目到腾讯云(云服务器)_第11张图片

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"]

Docker部署springboot项目到腾讯云(云服务器)_第12张图片

解释:

#注意,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 lisi
 
#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不在步骤一的文件夹中 则需要指定到对应的地址。

Docker部署springboot项目到腾讯云(云服务器)_第13张图片

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

Docker部署springboot项目到腾讯云(云服务器)_第14张图片

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

Docker部署springboot项目到腾讯云(云服务器)_第15张图片

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

Docker部署springboot项目到腾讯云(云服务器)_第16张图片

部署完成!!!

访问

Docker部署springboot项目到腾讯云(云服务器)_第17张图片

删除重做(更新)镜像

更新了项目,把原来部署的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

Docker部署springboot项目到腾讯云(云服务器)_第18张图片

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

docker build -t blog:1.0 .

3、运行镜像

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

你可能感兴趣的:(SpringBoot,服务器,linux,java,docker,spring,boot)