当前位置: 首页 > 编程笔记 >

spring boot项目生成docker镜像并完成容器部署的方法步骤

谭卜鹰
2023-03-14
本文向大家介绍spring boot项目生成docker镜像并完成容器部署的方法步骤,包括了spring boot项目生成docker镜像并完成容器部署的方法步骤的使用技巧和注意事项,需要的朋友参考一下

一、问题产生   

把spring boot项目生成的jar打成docker镜像并生成docker容器完成部署是比较简单方便的部署方式,而且部署过程很少会出错。

二、部署步骤

1.利用maven或者gradle完成打包工作,打成jar包的形式。

2.在项目中的任意位置创建Dockerfile文件,本人的文件如下:

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

FROM java:8是指含有jdk1.8的镜像

VOLUE /tmp /tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录

ADD front-1.0-SNAPSHOT.jar front.jar

添加自己的项目到到front.jar中,注意:这里的包名要和pom文件中的包名一致。

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/front.jar"]

ENTRYPOINT是指容器运行后默认执行的命令。

3.上传自己的项目和Dockerfile文件到虚拟机,可以放在同一个目录下面

4.创建自己的镜像

docker build -t front:1.0-SNAPSHOT .

注意后面是有个点的。

显示创建成功,查看下镜像。

现在镜像就创建成功了。

5.生成docker容器

docker run -d -p 8080:8080 --name front front:1.0-SNAPSHOT

-d:后台运行容器

-p 8080:8080 主机的端口和docker容器中的端口做映射

front 自定义的容器名称

front:1.0-SNAPSHOT镜像名称和对应版本,如果没有指定版本,默认会去寻找lastest版本。

生成了容器的id,docker ps -a查看是否存在front容器。

是生成了容器,接下来启动就可以了。

到此这篇关于spring boot项目生成docker镜像并完成容器部署的方法步骤的文章就介绍到这了,更多相关spring boot生成docker镜像内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍Docker镜像+nginx 部署 vue 项目的方法,包括了Docker镜像+nginx 部署 vue 项目的方法的使用技巧和注意事项,需要的朋友参考一下 一、打包vue项目   在开发完的vue项目输入如下命名,打包生成dist文件夹   此时根目录会多出一个文件夹:dist文件夹,里面就是我们要发布的东西。   如果将该dist目录整个传到服务器上,部署成静态资源站点就能直接访

  • 本文向大家介绍springboot docker jenkins 自动化部署并上传镜像的步骤详解,包括了springboot docker jenkins 自动化部署并上传镜像的步骤详解的使用技巧和注意事项,需要的朋友参考一下 springboot + docker + jenkins自动化部署项目,jenkins、mysql、redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器

  • 问题内容: 我想知道容器ID的生成方式,因此请提供执行docker run时提供容器ID的源代码? 问题答案: 这是docker守护程序创建容器的代码片段: 因此,创建ID和名称的逻辑是在generateIDAndName函数中: 这是字符串源,具体方法是使用false作为输入参数的generateID: 正如你所看到的,该值是随机与此产生的随机

  • 我阅读了Docker映像规范v1.2.0。上面说: 层由其序列化表示的加密哈希引用。这是用于传输层的tar存档上的SHA256摘要,表示为256位的十六进制编码,例如,SHA256:A9561EB1B190625C9ADB5A9513E72C4DEDAFC1CB2D5236C9A6957DFD5A9。层必须重复打包和解包,以避免更改层ID,例如使用tar split保存tar标头。请注意,用作层I

  • 我是前端开发,被部署的问题折腾了很久,在网上也没有找到有用的信息,所以发帖求助。 背景:我用若依前后端分离版(若依前后端分离-Vue)做了一个简单后台,因为没有后端基础,所以想借助微信云托管来进行服务部署,目前这个云托管服务也是免费的。 微信云托管是自动部署的,我用若依部署老是失败,问了他们客服,客服说云托管是基于docker的,所以项目必须是以容器的方式部署,建议我先尝试本地镜像构建。然后我安装

  • 本文向大家介绍Docker拉取镜像的完整步骤,包括了Docker拉取镜像的完整步骤的使用技巧和注意事项,需要的朋友参考一下 1. docker pull 拉取镜像 使用 $ docker pull {IMAGE_NAME} 拉取镜像时,有两种情况: IMAGE_NAME 第一个斜杠之前有域名标识 Docker 会将 IMAGE_NAME 识别为带域名的镜像。例如,myregistry.io/spa