Docker容器部署SpringBoot项目(2020.09.22)

Docker容器部署SpringBoot

前提安装好DockerJDK环境

1.0 自己手动Dockerfile构建镜像

1.1.1 创建Dockerfile文件

Dockerfile 文件用来说明如何来构建镜像,

录入以下内容。

#使用 JDK 8 环境为基础镜像,如果镜像不是本地的将会从 DockerHub 进行下载
FROM openjdk:8-jdk-alpine
#这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到tomcat容器的工作目录/tmp目录
VOLUME /tmp
#复制文件到容器,并且重命名。
ADD MySpringBoot.jar app.jar
# 声明需要暴露的端口
EXPOSE 8080
#为了缩短 Tomcat 的启动时间,添加 java.security.egd 的系统属性指向 /dev/urandom 作为 ENTRYPOINT。
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

1.1.2 上传项目与构建声明

SpringBoot项目打成jar包, 然后与Dockerfile文件夹一起上传到Linux服务器

wnzQ39.jpg

1.1.3 执行开始构建

-t 镜像名称(必须全小写):(标签) 后面的点.代表Dockerfile在当前目录。

如果Dockerfile 文件路径不在这个目录下,或者有另外的文件名,我们可以通过 -f 选项单独给出 Dockerfile 文件的路径。

-f /(所在文件路径)/(Dockerfile文件名) 项目jar包所在路径

# 这个代表Dockerfile在当前目录
[root@zhihao my_docker]# docker build -t myspringboot:1.0 .
# 这个可以指定Dockerfile不同文件名或者不同路径的Dockerfile
[root@zhihao my_docker]# docker build -t myspringappliconsumer:1.0 -f /usr/local/Dockerfile .

构建完成如下图

wu91js.jpg

1.1.4 启动myspringboot项目docker容器

启动后进行项目访问,能成功访问即为成功!

docker run -id --name=MySpringBoot -p8080:8080 43ec6085b82e(镜像ID)

1.1.5 查看容器日记

docker logs -f 3c5a7f6f7eaa

2.0 父工程多模块构建方式

2.1 使用(利用dockerfile-maven-plugin插件)

2.2 使用Shell脚本进行一系列构建并运行

2.2.1 先把所有需要构建的Dockerfile文件放在同一个目录下,并起不同的文件名, 例如: xxx项目名-Dockerfile

2.2.2 然后将打成Jar包工程, 上传到同一个目录下。

2.2.3 编写Shell脚本进行一系列构建镜像 , 并启动镜像。

#! /bin/bash
echo "开始执行docker关闭与删除原项目容器命令!"
docker stop 容器名称 容器名称 容器名称 容器名称
docker rm 容器名称 容器名称 容器名称 容器名称
echo "docker关闭与删除原项目容器命令执行完毕!"
sleep 2s
echo "开始执行docker删除原项目镜像命令!"
docker rmi -f 镜像名称:TAG  镜像名称:TAG  镜像名称:TAG 
echo "docker删除原项目镜像命令执行完毕!"
sleep 2s
#unzip 解压所有项目jar.zip 到指定目录 (没用到)
echo "开始执行项目docker构建命令!"
docker build -t 项目名称:1.0 -f /usr/local/创建好的(项目名称-Dockerfile) /xxx/xxx/(jar包所在文件夹)
docker build -t 项目名称:1.0 -f /usr/local/创建好的(项目名称-Dockerfile) /xxx/xxx/(jar包所在文件夹)
docker build -t 项目名称:1.0 -f /usr/local/创建好的(项目名称-Dockerfile) /xxx/xxx/(jar包所在文件夹)
echo "执行项目docker构建命令执行完毕!"
sleep 2s
echo "开始执行项目docker创建容器命令!"
docker run -id --name=myspringAppliconsumer  -p8008:8008 镜像名称:1.0(TAG)
docker run -id --name=myspringappliprovider  -p8007:8007 镜像名称:1.0(TAG)
echo "执行项目docker创建容器命令完毕!"
sleep 2s
echo "开始查看项目容器是否正常运行!"
docker ps -a

2.2.4 附上本人的一个构建项目的Shell脚本

#! /bin/bash
echo "开始执行docker关闭与删除原项目容器命令!"
docker stop myspringappliconsumer myspringappliprovider
docker rm myspringappliconsumer myspringappliprovider
echo "docker关闭与删除原项目容器命令执行完毕!"
sleep 2s
echo "开始执行docker删除原项目镜像命令!"
docker rmi -f myspringappliconsumer:1.0 myspringappliprovider:1.0
echo "docker删除原项目镜像命令执行完毕!"
sleep 2s
#unzip 解压所有项目jar.zip 到指定目录 (没用到)
echo "开始执行项目docker构建命令!"
docker build -t myspringappliconsumer:1.0 -f /usr/local/my_docker/dockerfile/1-Dockerfile /usr/local/my_docker/
docker build -t myspringappliprovider:1.0 -f /usr/local/my_docker/dockerfile/2-Dockerfile /usr/local/my_docker/
echo "执行项目docker构建命令执行完毕!"
sleep 2s
echo "开始执行项目docker创建容器命令!"
docker run -id --name=myspringappliconsumer  -p8008:8008 myspringappliconsumer:1.0
docker run -id --name=myspringappliprovider  -p8007:8007 myspringappliprovider:1.0
echo "执行项目docker创建容器命令完毕!"
sleep 2s
echo "开始查看项目容器是否正常运行!"
docker ps -a

在这里插入图片描述
在这里插入图片描述

如果先保留之前项目版本的快照镜像, 则使用传递参数到Shell执行进行构建, 不进行删除镜像

#! /bin/bash
echo "开始执行docker关闭与删除原项目容器命令!"
docker stop myspringappliconsumer myspringappliprovider
docker rm myspringappliconsumer myspringappliprovider
echo "docker关闭与删除原项目容器命令执行完毕!"
sleep 2s
echo "开始执行项目docker构建命令!"
docker build -t myspringappliconsumer:$1 -f /usr/local/my_docker/dockerfile/1-Dockerfile /usr/local/my_docker/
docker build -t myspringappliprovider:$1 -f /usr/local/my_docker/dockerfile/2-Dockerfile /usr/local/my_docker/
echo "执行项目docker构建命令执行完毕!"
sleep 2s
echo "开始执行项目docker创建容器命令!"
docker run -id --name=myspringappliconsumer  -p8008:8008 myspringappliconsumer:$1
docker run -id --name=myspringappliprovider  -p8007:8007 myspringappliprovider:$1
echo "执行项目docker创建容器命令完毕!"
sleep 2s
echo "开始查看项目容器是否正常运行!"
docker ps -a

执行Shell [root@zhihao local]# ./my.sh 2.0(版本号)

3.0 IDEA一键部署SpringBoot到远程Docker容器

问题不安全, 开放后,任何人都可以打包镜像上来。 需要学习的请看 : https://blog.csdn.net/u012702547/article/details/100153799

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

懵懵懂懂程序员

如果节省了你的时间, 请鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值