您的位置:首页 > 运维架构 > Docker

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

2017-03-22 00:09 876 查看
        摘要: 本文演示了如何用 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也可以说明容器对外的端口,启动时的工作目录和缺省执行的命令。
VOLUME
 
指定了临时文件目录为
/tmp
。其效果是在主机 
/var/lib/docker
 目录下创建了一个临时文件,并链接到容器的
/tmp
。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。
/tmp
目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat
容器默认使用
/tmp
作为工作目录
项目的 jar 文件作为 “app.jar” 添加到容器的
ENTRYPOINT
 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向
“/dev/urandom” 作为 Entropy Source

ENV指定环境变量的值

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

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工具后期如果学习也会写文档
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker