目录
1.安装docker教程
基于 WSL2、 Docker Desktop搭建Windows和Linux系统 Docker 环境-CSDN博客
2.在IDEA软件中打包jar包
打包后,jar包在/target目录下
3.安装mysql
3.1搜索mysql镜像
docker search mysql
3.2拉取mysql镜像
docker pull mysql
3.3 创建容器,设置端口映射、目录映射
# 在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
参数说明:
-p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
**-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码,这里设置的密码要与jar中的数据库密码password一致。(最好设置123456,设置其它的可能会报错)
为了在容器重新启动后保留MySQL数据,可以将数据目录映射到宿主机的目录。在创建容器时,可以添加以下参数:
-v /docker/mysql/config/my.cnf:/etc/my.cnf #宿主机目录:mysql容器目录
-v /docker/mysql/data:/var/lib/mysql
3.4 进入容器,操作mysql
docker exec –it c_mysql /bin/bash
3.5 使用navicat软件连接服务器容器中的mysql
连接名自定义,主机就是服务器的ip地址,端口默认是3306,用户名默认是root,密码是上一步刚设置过的123456
4.导入数据库及数据
如果到了这一步,默认你本机上连上了服务器上的mysql数据库,这时需要把项目用到的sql文件导入数据库
在服务器中新建一个数据库,再把sql文件导入到数据库中(数据库名和sql文件名要相同)
5.部署springboot项目
如果不清楚maven打包后的jar包放在哪儿,可以去/target目录下找
5.1服务器设置防火墙
# firewall-cmd --zone=public --add-port=端口号/tcp --permanent
firewall-cmd --zone=public --add-port=8090/tcp --permanent
5.2重启服务器防火墙
firewall-cmd --reload
5.3编写Dockerfile文件
找到刚刚上传jar包的目录,可按照以下模板编写一个Dockerfile文件
FROM openjdk:8
ADD ./energy-screen-3.6.0-exec.jar app.jar
EXPOSE 8090
CMD java -jar app.jar
FROM openjdk:8 //指定了基础镜像为OpenJDK 8。
ADD ./energy-screen-3.6.0-exec.jar app.jar /将当前目录下的energy-screen-3.6.0-exec.jar文件复制到镜像的/app目录下,并将其命名为app.jar
EXPOSE 8090 //声明了容器将监听8090端口
CMD java -jar app.jar //设置了容器启动时运行的命令,即运行app.jar文件
Dockerfile文件中不要加注释,否则容易报错
5.4Dockerfile构建镜像
目录依然需要在jar包那个目录下执行如下语句。
#docker build –f (dockerfile文件路径) –t 镜像名称:版本 .
docker build -f ./Dockerfile -t app .
注:‘.’要在app后一个空格添加
5.5 创建容器
#docker run -id -p 主机端口号:容器端口号 容器名字(app)
docker run -id -p 8090:8090 app