本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。

环境搭建

安装Docker

检查系统内核版本

Docker运行在CentOS 7上,要求操作系统为64位,内核版本为3.10及以上。确认本机已经安装了满足要求的Linux内核。使用命令uname -r来检查内核版本信息。

[root@localhost ~]# uname -r3.10.0-957.el7.x86_64

在CentOS 7中安装Docker

使用命令yum install -y docker安装Docker,“-y”表示不询问,使用默认配置进行安装。

启动Docker服务,并设置为开机自启动

使用下列命令:

systemctl start docker.servicesystemctl enable docker.service

查看版本信息

输入docker version,返回版本信息表明Docker安装成功。

[root@localhost ~]# docker versionClient:Version:         1.13.1 API version:     1.26Package version: docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64Go version:      go1.10.3Git commit:      b2f74b2/1.13.1Built:           Wed May  1 14:55:20 2019 OS/Arch:         linux/amd64Server:Version:         1.13.1 API version:     1.26 (minimum version 1.12)Package version: docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64Go version:      go1.10.3Git commit:      b2f74b2/1.13.1Built:           Wed May  1 14:55:20 2019 OS/Arch:         linux/amd64Experimental:    false

安装Maven和配置阿里云镜像

下载Maven

wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

解压和移动

tar vxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /usr/local/maven3

配置环境变量

打开环境变量vim /etc/profile,添加如下内容:

MAVEN_HOME=/usr/local/maven3export MAVEN_HOMEexport PATH={PATH}:{MAVEN_HOME}/bin

保存并退出::wq

刷新环境变量的配置使其生效:source /etc/profile

查看版本信息

使用命令mvn -v进行查看

[root@localhost ~]# mvn -vApache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)Maven home: /usr/local/maven3Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /usr/local/java/jdk1.8.0_211/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

使用mvn package命令进行打包,却报错,提示连接被拒绝。

解决办法:给Maven配置阿里云镜像 切换到maven安装目录下面,打开settings.xml文件,在标签里面添加:

 alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central  

Spring Boot项目添加Docker支持

新建Spring Boot工程

新建一个Spring Boot项目,添加一个简单的DockerController,方便进行测试。

@RestController@SpringBootApplication@RequestMapping("/docker")public class DockerController {@RequestMapping("/hello")@ResponseBodypublic String hello() {return "Hello Docker";}}

添加Docker支持

在 pom.xml中添加Docker镜像名称

springboot

添加 Docker插件:

编写Dockerfile文件

在目录src/main/docker下创建Dockerfile 文件,Dockerfile 文件用来说明如何来构建镜像。

FROM java:8VOLUME /tmpADD docker-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

FROM指令指定一个已经存在的镜像,告诉Docker后续的指令都是在这个基础上进行的。例如:FROM java:8表示使用 Jdk1.8 环境为基础镜像进行构建镜像。

VOLUME ,VOLUME 指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录

ADD ,拷贝文件并且重命名

ENTRYPOINT,为了缩短Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为ENTRYPOINT。

部署Spring Boot工程

将工程代码 docker 拷贝服务器中,进入项目路径下进行打包测试。

打包:mvn package 运行:java -jar target/spring-boot-docker-1.0.jar

项目启动成功,说明环境配置没有问题,接下来可以使用Dockerfile构建镜像。

构建Docker镜像mvn package docker:build。可以看到docker镜像构建成功,仔细看日志,会发现四个步骤和Dockerfile中的指令是一一对应的。

使用docker images命令查看构建好的镜像:

[root@localhost ~]# docker imagesREPOSITORY              TAG                 IMAGE ID            CREATED             SIZEspringboot/docker       latest              39aabeebb971        5 days ago          660 MB

运行docker镜像:docker run -p 8080:8080 -t springboot/docker

在本机浏览器进行访问,可以看到返回结果,说明部署成功。

docker添加新的环境变量_Docker的安装及部署Spring Boot项目操作详解!相关推荐

  1. docker添加新的环境变量_Docker容器环境变量设置与查看

    设置环境变量 在编写Dockerfile时, 我们可以通过ENV来为Docker容器设置相关的环境变量,设置的环境变量在Docker容器中可以通过环境变量来进行引用. Docker容器环境变量设置方法 ...

  2. docker添加新的环境变量_Docker环境变量

    环境变量 环境变量通常在与您正在使用的基本映像关联的Dockerfile中设置.也有Docker为每个新容器自动设置的环境变量.您可以指定其他变量,并使用-e或--env选项重新定义Docker设置的 ...

  3. docker添加新的环境变量_docker使用教程[三]Dockfile小试牛刀

    本来计划着今天要讲关于docker数据卷部分的知识和配置操作相关的,但是今天复习docker知识的时候恰好看到了Dockfile的知识,所以今天帮大家了解一下关于如何私人定制自己的docker镜像. ...

  4. CentOS 7 快速搭建JavaWeb开发环境并部署Spring boot项目(纯干货、详细)

    前言: 服务器:阿里云服务器ECS,装载CentOS 7系统 终端模拟工具&文件传输软件:xshell 7 \ xftp 7 IDE: IntelliJ IDEA 2022.1 部分内容参考阿 ...

  5. KG—Linux添加新的环境变量以及对PATH环境变量的修改

    KG的意思就是个"扩展"~~ 今天看了看Linux对环境变量的操作,感觉还是挺重要的,对于一些想偷懒的来说,那就是再好不过了~~ 所以呢,对于我,那就是更好不过了~~ 我这里只是说 ...

  6. 快速使用 Docker 部署 Spring Boot 项目

    如今 Docker 的使用已经非常普遍,特别是在一线互联网公司,使用 Docker 技术可以帮助企业快速水平扩展服务,从而达到弹性部署业务的能力.在云服务概念兴起之后,Docker 的使用场景和范围进 ...

  7. Docker 部署 Spring Boot 项目初探

    2019独角兽企业重金招聘Python工程师标准>>> 仅想在Docker里运行一个Spring Boot项目,捣鼓了许久... 本文主要适用于Windows环境下的Docker 一 ...

  8. 7 环境变量 立即生效_MySQL5.7升级到8.0过程详解

    前言: 不知不觉,MySQL8.0已经有好多个GA小版本了.目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了.本篇文章主要介绍从5 ...

  9. 【小家Java】Java环境变量(Env)和系统属性(Property)详解---工具文章

    每篇一句 胡适说:大胆猜想,小心求证 前言 首先说明,这是一篇工具文章,主要记录下我们Java环境变量和系统属性,方便以后的查阅. 当程序中需要使用与操作系统相关的变量(例如:文件分隔符.换行符)时, ...

最新文章

  1. 计算机网络tcp传送,计算机网络基础课程—传输控制协议(Tcp)
  2. c++使用cin输入数据
  3. 【sprinb-boot】改造成 spring-cloud 项目
  4. Android 项目在Eclipse中的目录结构
  5. Android串口通信实例分析【附源码】
  6. 《Dubbo迈出云原生重要一步-应用级服务发现解析》
  7. 每日总结app_每日复盘不会写,怎么办?送你一份每日复盘总结模板
  8. (1)FPGA面试技能提升篇(SystemC)
  9. 复杂性思维中文第二版 六、生命游戏
  10. poj 3074(DLX)
  11. Java坦克大战代码
  12. 倍福--读取控制器诊断信息
  13. 在线简洁Logo制作
  14. 智商高的人都不爱说话,程序员也是如此吗?
  15. eclipse各种中文乱码的解决
  16. 8个国外免费学习编程的网站,果断收藏!
  17. nexus7 刷成kali linux,Nexus 6p 刷入Kali Linux Nethunter 2019.4方法
  18. 联发科技嵌入式_联发科技(MTK)嵌入式软件开发一面
  19. HTML5新控件 - 颜色选择器
  20. 除了labview你还知道哪些工业控制领域的软件?

热门文章

  1. Python编程基础:第三十三节 文件复制Copy a File
  2. Docker源码分析(五):Docker Server的创建
  3. 京东10亿级调用量背后的高可用网关系统架构实践!
  4. spring4.x注解概述
  5. android studio 与gradle的版本对应
  6. SpringBoot + Vue + nginx项目一起部署
  7. Vue.js(一) Vue.js + element-ui 扫盲
  8. 五、【线性表】线性表的链式表示和实现
  9. Spring Cloud Alibaba - 08 Ribbon 两种方式实现细粒度自定义配置控制微服务的负载均衡策略
  10. 深入理解分布式技术 - 分布式锁的应用场景和主流方案