SpringBoot项目打包成docker镜像并运行

SpringBoot项目打包成docker镜像并运行

1.修改java项目配置文件
将自己的springBoot项目的配置文件中的mysql连接地址与redis连接地址改成服务器IP的地址,因为容器内部相互隔离。
如果不想修改localhost为特定的IP地址的话,可以在运行容器的时候加上--net=host 就直接容器中的IP地址对应宿主机的IP地址,但是就不能映射出端口号了。–net和-p或-P不能共存。

在这里插入图片描述
在这里插入图片描述
2.项目打包成jar包,上传到Linux服务器上
在服务器上新建文件夹,我在/root/下面新建/dockerTest/文件夹
将 jar 包上传到/root/dockerTest/文件夹下
并在这个文件夹上新建新的文件 Dockerfile
修改文件内容为以下内容
修改端口号为自己项目的端口号
在这里插入图片描述

#基础镜像通过java8来的
FROM java:8
#将当前文件中所有*.jar  拷贝到项目的app.jar中(这个app.jar是自己生成的)
COPY *.jar /app.jar
#映射地址
CMD ["--server.prot=8991"]
#暴露端口
EXPOSE 8991
#执行命令java  -jar
ENTRYPOINT ["java","-jar","/app.jar"]

3.在/root/dockerTest/文件夹下执行生成镜像命令
后面的.号千万不能忘记
nms_docker 是自己起的镜像名称
docker镜像是层级下载的
可以自己声明[tag]版本号

docker build -t nms_docker:1.0 .

在这里插入图片描述

4.运行docker镜像
docker images 发现已经生成镜像了
在这里插入图片描述
现在可以运行这个镜像了

端口号直接跟宿主机对应

docker run -d --restart always --net=host \
	-v /home/nms/uploadPath:/home/nms/uploadPath \
	-v /usr/local/nms:/usr/local/nms \
	--name nms-service nms_docker:1.0
# --restart always 自启动
# --net=host 网络直接与宿主机一致
# -v 挂载目录  宿主机目录:容器内目录
# --name 服务容器名称

运行成功后,使用docker ps -a查看正在运行的容器
在这里插入图片描述
可以通过 docker logs 容器ID 查看启动日志,可以看到,我这边项目启动成功了
在这里插入图片描述
项目访问成功(nginx + mysql + redis 都是docker启动的) 可以看我其他博客:
mysql 部署:https://blog.csdn.net/weixin_43484014/article/details/114384964
docker 部署:https://blog.csdn.net/weixin_43484014/article/details/119957836
nginx 部署:https://blog.csdn.net/weixin_43484014/article/details/121137537
在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_43484014/article/details/121128007