Spring boot项目在docker下的部署,发布

        摘要: 本文演示了如何用 Docker 运行、发布来一个 Spring Boot 应用(主要是本地创建的spring boot应用如何发布在远程(aliyun)服务器上)。 Docker 简介 Docker 是一个 Linux 容器管理工具包,具备“社交”方面,允许用户发布容器的 image (镜像),并使用别人发布的 image。

        前置条件

              阿里云服务器的环境 :JDK 1.8+Maven 3.0+、Docker 最新版。

        1)、先构建一个简单的Spring boot项目,目录结构如下(spring boot项目大家肯定都有用过,所以不做过多的赘述,只注重pom.xml和Dockerfile):

                  项目目录图和Dockerfile:

                     

               Dockerfiles:

             Dockerfile是对Docker Container创建过程的描述脚本。每个Dockerfile详细说明了开始的基础镜像,以及随后一系列在容器中运行的命令和添加到容器中的文件。Dockerfile也可以说明容器对外的端口,启动时的工作目录和缺省执行的命令。

    1. VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
    2. 项目的 jar 文件作为 “app.jar” 添加到容器的
    3. ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source
    4. ENV指定环境变量的值

    5.  FROM    
              语法:FROM <image>[:<tag>]
              解释:设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载。

    6. RUN指令会在一个新的容器中执行任何命令,然后把执行后的改变提交到当前镜像,提交后的镜像会被用于Dockerfile中定义的下一步操作,RUN中定义的命令会按顺序执行并提交,这正是Docker廉价的提交和可以基于镜像的任何一个历史点创建容器的好处,就像版本控制工具一样。 

    2)、测试项目是否在本地可以运行

          


3)、项目上传至git

          


4)、在服务器上从git pull下代码

             服务器上必须安装JDK 1.8+Maven 3.0+、Docker 最新版这里就不做多的叙述,大家应该都比我熟悉。

             先pull下代码使用 mvn clean命令清空target输出目录

             

            再使用mvn package docker:build命令生成项目对应的镜像springio/docker 对应的镜像名在pom.xml文件中有配到

            

          再使用docker run -t 8080:8888 springio/docker 启动镜像 这里的8888是springboot项目在镜像中启动时的端口,映射到阿里云服务器上的8080端口,这样就可以直接通过8080 端口进行访问了

          

这个上周六自己学习总结的比较简单的一个用docker 发布springboot项目到远程服务器上的一个小demo,希望大家可以用到,更复杂的docker 应用,比如docker compose工具后期如果学习也会写文档


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值