Docker部署SpringBoot项目
前言:
以前几次在云服务器上部署项目都是手动打包,安装mysql等环境最后再部署运行,相对比较麻烦而且加上网上各种教程质量层次不齐,如果过程中出错的话排查问题对于新人来说已经够喝一壶了。(我自己第一次手动装mysql8.0就出过问题,最后找不到问题所在只能推倒一步步重来)
而最近在Win10专业版下用Docker桌面版安装了zookeeper/rabbitmq/redis 6.2等都比较方便,命令行拉取镜像,启动服务都非常方便快捷,相比以往下载配置环境变量再启动的方式要方便很多,所以此次决定尝试一下通过Docker的方式来安装部署一次Spring Boot项目。
声明:本文主要介绍如何通过 IntelliJ IDEA、Maven 来操作 Docker 部署 Spring Boot 项目到云服务器,不涉及Docker或Maven等内容中的基本概念,默认读者已经了解,相关教程请自行搜索。
云服务器:阿里云Centos 7
1.云服务器基本环境搭建
安装Docker
yum安装Docker
yum install docker
启动docker并设置为启动:
systemctl start docker.service
systemctl enable docker.service
使用docker国内镜像加速
vim /etc/docker/daemon.json
内容如下(也可自己搜索其他镜像修改)
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
重启docker
systemctl restart docker
可以看到镜像已经改了
docker info
查看docker版本信息
docker version
安装JDK
耐心等待安装完成
yum -y install java-1.8.0-openjdk
查找java所在位置
whereis java
配置环境变量
vim /etc/profile
配置信息
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
export PATH=$PATH:$JAVA_HOME/bin
再次刷新配置信息
source /etc/profile
查看java版本信息
java -version
安装Maven
方式有很多种,自己到Maven官网下载上传到服务器解压或者直接wget命令安装(通过yum安装weget命令).我这里选用第一种.
本质上和在win10下安装没什么区别都是下载->解压->配置镜像和仓库->配置环境变量这几个步骤
下载Maven
Maven官网:
https://maven.apache.org/docs/history.html
下载Linux版本,然后传到云服务器手动解压安装
可以直接下载最新版本,但我个人一般习惯往前找几个版本的,所以继续往下滑
1.看到标题停下来,它给我们指明了更早的版本在哪去找
2.二进制文件就是我们要的,source指的是源码
3.选择对应Linux的版本
上传到服务器并解压
把它下载然后上传到服务器指定目录下(我这里用XFTP传到了usr/local目录下)
这时候解压它就行
通过如下命令解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
配置镜像和本地仓库信息
上面这个就是解压后的文件夹,只需要配置下国内镜像地址和本地仓库位置信息就可以用了。
cd apache-maven-3.6.3 #进入apache-maven-3.6.3目录
这时候可以新建一个目录,用作后续修改配置文件,存放maven下载的jar
mkdir repository #创建目录存放后续maven下载jar包
进入conf目录,通过vim修改settings.xml,配置镜像和本地仓库信息
vim基本操作:
i
:进入编辑模式
esc +!:wq
: 保存并退出
cd conf #进入conf目录
vim settings.xml #编辑配置文件
配置文件里我们只关心mirrors根节点下的镜像和localRepository根节点下的本地仓库位置
本地仓库:解除注释,把位置改成之前自己创建的仓库目录的完整路径
<localRepository>/usr/local/apache-maven-3.6.3/repository</localRepository>
镜像地址:注意name和url这些不要搞错了
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
修改完以上的两处,保存并退出就行。
配置环境变量
接下来是,依旧是配置环境变量
vim /etc/profile
编辑/etc/profile 文件,系统环境变量都在这配置
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
刷新配置文件:
source /etc/profile
查看Maven版本信息
mvn -v
以下的Mysql和Redis的安装只是因为我的项目用到了,如果只是自己体验整个部署流程的话不需要安装
安装Mysql
到DockerHub找一个mysql镜像,我这里用的mysql8
https://hub.docker.com/_/mysql
到tags下搜索,然后复制命令拉取镜像就行
- 拉取镜像
docker pull mysql:8.0
- 查看镜像
docker images
这里DockerHub官方也给了关于如何使用和连接的指南
- 创建并修改配置文件
创建两个文件夹conf和data(映射Docker的目录,放置配置文件和日志等信息)
我把它放在了/usr/local/mysql/路径下(看自己习惯)
创建/修改配置文件信息
vim my.cnf #用touch新建也一样
内容如下
[mysql]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数
max_connect_errors=10
#服务端使用的字符集
character-set-server=UTF8MB4
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#等待超时时间秒