Docker 部署springboot 应用

本人初学docker,对docker概念还不是很理解,故本文不对docker概念做详细解释

Docker是一种Linux容器的实现,Linux容器是基于进程的轻量级资源隔离技术,每一个容器对应操作系统中的一个进程,但是它又会有自己的网络空间、文件系统、PID等。Docker除了实现Linux容器,还使得容器具有“社会化”的功能,用户可以将容器镜像发布在Docker Hub与其他开发者共享、协作。安装Docker的教程请参考官方文档

Spring Boot应用通常被构建为一个可单独执行的jar包,通过java -jar ...运行,但是框架本身并没有提供以服务形式运行在后台的方法,通常需要借助Systemd, Supervisord等进程管理工具来实现。另一方面,虽然应用运行环境非常的简单,但是将他们容器化为Docker容器镜像并运行,对于自动化部署、运维都是非常有利的。

本文将以一个最简单的Spring Boot开发的Web应用为例,讲解如何将其容器化运行。本文的重点是构建Docker镜像、运行Docker容器
 

1,准备一个centos 的系统,安装docker ,注意  Docker 要求 CentOS 系统的内核版本高于 3.10

通过 uname -r 命令查看你当前的内核版本

2,将springboot 项目打成jar 包,上传至服务器,并新建Dockerfile构建镜像

Dockerfile 内容为:

FROM java:8
VOLUME /tmp
ADD docker.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

java:8是指Docker Hub上官方提供的java镜像,版本号是8也就是jdk1.8,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用:

VOLUME /tmp创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
ADD docker.jar app.jar 将应用jar包复制到/app.jar
ENTRYPOINT表示容器运行后默认执行的命令

3,运行docker构建镜像命令,docker build -t 跟你想要的镜像名称  .(注意最后的 ".")

docker build -t eurekademo .

 

通过命令查看镜像:docker images

最后运行docker 容器

docker run -d -t 8888:8761 eurekademo

接下来可以访问试试

Docker 部署springboot 应用_第1张图片

访问成功。。。。。

 

参考https://blog.csdn.net/qq_22211217/article/details/80414227

你可能感兴趣的:(linux,springboot学习)