手摸手教你使用Docker部署Springboot项目(详细版)

目录

1.安装docker教程

2.在IDEA软件中打包jar包

3.安装mysql

3.1搜索mysql镜像

3.2拉取mysql镜像

3.3 创建容器,设置端口映射、目录映射

3.4 进入容器,操作mysql

3.5 使用navicat软件连接服务器容器中的mysql

4.导入数据库及数据

5.部署springboot项目

5.1服务器设置防火墙

5.2重启服务器防火墙

5.3编写Dockerfile文件

5.4Dockerfile构建镜像

5.5 创建容器

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大厂前端程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值