Docker部署springboot到腾讯云
月复西斜 人气:0服务器的配置
服务器配置总结为三个,防火墙,端口,和安全组
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
加载全部内容