Docker部署项目
docker部署Springboot项目
主要分为两步吧
1、在打包之前需要修改配置文件,将数据库改为虚拟机的地址端口号自定,如下:
① 先安装MySQL的镜像
docker pull mysql:8.0.26
安装成功后可以通过docker images查看mysql是否安装成功
至于安装速度缓慢的问题,可以采用阿里云的镜像加速,这个是免费的在控制台可以直接搜索
根据自己的需求进行配置就可以了,json文件是需要自己创建的,找到/etc/docker目录自己创建即可,至于这种方法我尝试 是有效的,如果效果不大,可以更改网络,或者配置其它的镜像。
② 安装mysql成功后
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=jiang123456 --name my_mysql mysql
-
-d
: 这是docker run
命令的一个选项,表示以“后台运行”(detached)模式启动容器,即容器在后台运行而不会占据终端。 -
-p 3307:3306
: 这是另一个docker run
命令的选项,用于将主机(host)的3307端口映射到容器内的3306端口。这样,通过在主机上连接3307端口,可以访问运行在Docker容器内的MySQL服务。左边的端口号3307是主机上的端口,右边的端口号3306是容器内运行的MySQL服务的端口号。
所以你的项目中要修改
url: jdbc:mysql://192.168.52.6:3307/takeaway 虚拟机的ip地址192.168.52.6,3307就是端口号
-
-e MYSQL_ROOT_PASSWORD=jiang123456
: 这是用于设置MySQL容器的环境变量的选项。在这里,MYSQL_ROOT_PASSWORD
是环境变量的名称,jiang123456
是变量的值。该选项设置了MySQL数据库的root
用户的密码为jiang123456
。 -
--name my_mysql
: 这个选项为容器指定了一个名称,即my_mysql
,这样可以方便地引用容器,例如在其他命令中使用这个名称来停止或管理容器。 -
mysql
: 这是要运行的Docker镜像的名称,即MySQL官方提供的官方镜像。Docker会在Docker Hub 上搜索名为mysql
的镜像并下载运行。
安装成功之后可以通过以下命令进入mysql的命令窗口
docker exec -it 自己的容器名称 bash 进入bash,这个命令同样可以进入不同的容器bash命令窗口,例如java的只需要更改容器名称即可
exit 可以退出bash
这个也可以进行远程连接,利用sqlyog等工具,可以更为快捷的导入sql文件。
完成以上部分基本完成一大半了,下面只需要导入jar包即可
②、将修改后的项目打包,并将jar导入虚拟机中,我是放在了一个Docker文件夹下,这个随意了
jar包导入之后需要创建Dockerfile文件进行配置,
FROM openjdk:8-alpine
COPY ./reggie.jar /tmp/app.jar
EXPOSE 8081
ENTRYPOINT java -jar /tmp/app.jar
配置完成后,以下命令需要在该目录下进行
# build镜像
docker build -t reggie:1.0 .
# 容器
docker run -d -p 8081:8081 --name reggiec reggie:1.0
这与这个端口号映射问题我给举个例子
第一个端口号是主机上的端口,第二个端口号是容器内的端口。
也就是第一个可以是任意的端口号,第二个则是需要与你的jar包项目的配置文件端口号一致
docker run -d -p 8089:8081 --name reggiecc reggie:1.0
假如我的项目中端口号配置是8081,上面的运行后访问就可以是192.168.52.6:8081,然后下面运行就是192.168.52.6:8089
完成之后就可以在游览器中访问了