Docker部署springboot项目到腾讯云的实现步骤
目录
- 服务器的配置
- 安装MySql
- 将springboot项目打成jar包
- 编写Dockfile文件
- 访问
- 删除重做(更新)镜像
服务器的配置
服务器配置总结为三个,防火墙,端口,和安全组
1、防火墙
查看防火墙状态
firewall-cmd --state
没有开启则开启防火墙
systemctl start firewalld.service
2、端口
添加对外开放的端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent firewall-cmd --zone=public --add-port=80/tcp --permanent
重新加载防火墙
firewall-cmd --reload
查看开发端口
firewall-cmd --list-ports
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
2.1 如果报错,就重启docker
systemctl restart docker
如果还报错如:已有该容器
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
ctrl+p+q可以以后台运行的方式退出这个容器
4、本地的MySQL可视化软件连接docker的数据库(我用的是sqlyog)
执行sql脚本,导入数据库
将springboot项目打成jar包
1、将applicayion.yml中的url中的localhost改成你服务器的公网ip,还有将密码改成你服务器上mysql的密码
2、项目打包,双击package
如下就打包成功,用的是第一个jar包。
.jar.original 是普通jar包,不包含依赖
.jar是可执行jar包,包含了pom中的所有依赖,可以直接用java -jar 命令执行
编写Dockfile文件
将springboot jar包项目打包成Docker镜像
1、在 /home/
下创建docker文件夹
2、使用xftp上传jar包到/home/docker/
下
3、在/home/docker
目录下,输入如下指令,开始编写Dockerfile文件
vim Dockerfile
在vim中编写如下内容保存
FROM java:8 ADD Blog_jpa-0.0.1-SNAPSHOT.jar /blog.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","/blog.jar"]
解释:
#注意,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不在步骤一的文件夹中 则需要指定到对应的地址。
5、docker images
就可以查看到这个镜像已经被创建好了,然后运行这个镜像就可以。
docker run --name blog -d -p 80:8080 blog:1.0
docker logs 容器id 查看容器运行日志
部署完成!!!
访问
删除重做(更新)镜像
更新了项目,把原来部署的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
2、将jar包更新后,生成新镜像
docker build -t blog:1.0 .
3、运行镜像
docker run --name blog -d -p 80:8080 blog:1.0
到此这篇关于Docker部署springboot项目到腾讯云的实现步骤的文章就介绍到这了,更多相关Docker部署springboot到腾讯云内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!