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 最新版。
Dockerfiles:
Dockerfile是对Docker Container创建过程的描述脚本。每个Dockerfile详细说明了开始的基础镜像,以及随后一系列在容器中运行的命令和添加到容器中的文件。Dockerfile也可以说明容器对外的端口,启动时的工作目录和缺省执行的命令。
容器默认使用
项目的 jar 文件作为 “app.jar” 添加到容器的
“/dev/urandom” 作为 Entropy Source
ENV指定环境变量的值
FROM
语法:FROM <image>[:<tag>]
解释:设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载。
RUN指令会在一个新的容器中执行任何命令,然后把执行后的改变提交到当前镜像,提交后的镜像会被用于Dockerfile中定义的下一步操作,RUN中定义的命令会按顺序执行并提交,这正是Docker廉价的提交和可以基于镜像的任何一个历史点创建容器的好处,就像版本控制工具一样。
服务器上必须安装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工具后期如果学习也会写文档
前置条件
阿里云服务器的环境 :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+、Maven3.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发布Spring Boot项目
- Spring Boot---(9)SpringBoot项目发布到docker的tomcat容器
- springboot docker部署发布
- spring-boot dubbo项目使用docker方式部署
- 从零开始通过idea插件将一个spring boot项目部署到docker容器里运行
- docker 中部署一个springBoot项目
- Mac下部署springBoot项目到Docker中(demo)
- 将springBoot项目部署到docker入门实例
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
- Docker---(5)Docker 部署SpringBoot web项目
- docker 部署springboot、dubbo项目
- docker 部署springboot、dubbo项目
- Docker部署springboot项目
- Docker 中部署 Spring boot 项目
- Springboot项目云部署 ---- 基于Docker的部署
- mac和linux下使用Docker,部署SpringBoot项目到docker
- Docker部署SpringBoot项目
- Docker入门之构建Springboot项目发布在镜像环境
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo