docker应用安装之部署Springboot项目

2023-10-30

docker部署springboot项目分为以下2步

  1. springboot项目的JAR包生成镜像文件。
  2. 将镜像文件生成容器,并完成部署。

一、springboot项目的JAR包生成镜像文件

  1. 编写Dockerfile文件。
    执行以下命令:
    mkdir docker  #创建docker文件夹
    cd  docker  
    vim Dockerfile #采用Dockerfile来创建images
    Dockerfile 中 输入以下代码,然后点击Esc键退出编辑后 输入wq保存文件:
    # Docker image for springboot file run
    # VERSION 0.0.1
    # Author: goodboby
    # 基础镜像使用java
    FROM java:8
    # 作者
    MAINTAINER goodboby <495186029@qq.com>
    # VOLUME 指定了临时文件目录为/tmp。
    # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
    VOLUME /tmp 
    # 将jar包添加到容器中并更名为app.jar
    ADD demo-0.0.1-SNAPSHOT.jar app.jar 
    # 运行jar包
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
    项目的 jar 文件作为 “app.jar” 添加到容器的
    


    Dockerfile文件结构解释如下:一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行。(详见Dockerfile文件体系结构,以下只例举了部分说明)
    FROM:指定基础镜像,要在哪个镜像建立。
    MAINTAINER:指定维护者信息。
    WORKDIR:指定当前工作目录。
    EXPOSE:指定容器要打开的端口。
    ENV:定义环境变量。
    COPY :复制本地主机的 (为 Dockerfile 所在目录的相对路径)到容器中的。
    ADD:相当于 COPY,但是比 COPY 功能更强大,格式为 ADD <src> <dest>,该命令将复制指定的 到容器中的 。 其中 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件,复制进容器会自动解压。
    VOLUME:挂载目录,创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
    ENTRYPOINT:配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效。
    CMD:指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。

     

    ENTRYPOINT 和 CMD 的区别:ENTRYPOINT 指定了该镜像启动时的入口,CMD 则指定了容器启动时的命令,当两者共用时,完整的启动命令像是 ENTRYPOINT + CMD 这样。使用 ENTRYPOINT 的好处是在我们启动镜像就像是启动了一个可执行程序,在 CMD 上仅需要指定参数;另外在我们需要自定义 CMD 时不容易出错。

  2. 将springboot的jar包上传到docker目录(Dockerfile文件和jar包必需放在同一个目录),如下图所示:

  3. 生成镜像。
    # docker-demo 为镜像名称,注意最后一个“.”
    docker build -t docker-demo .  

  4. 如下图所示,镜像生成成功。
  5. 运行容器。
    docker run -d  --name meishida -p 18085:8769 -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone  meishida
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker应用安装之部署Springboot项目 的相关文章

随机推荐

  • PIM协议原理与配置

    PIM协议原理 PIM Protocol Independent Multicast 协议无关组播 目前常用版本是PIMv2 PIM报文直接封装在IP报文中 协议号为103 PIMv2组播地址为224 0 0 13 在PIM组播域中 以组播
  • LOAM_velodyne学习(三)

    终于到第三个模块了 我们先来回顾下之前的工作 点云数据进来后 经过前两个节点的处理可以完成一个完整但粗糙的里程计 可以概略地估计出Lidar的相对运动 如果不受任何测量噪声的影响 这个运动估计的结果足够精确 没有任何漂移 那我们可以直接利用
  • jenkins报“”Build step 'Execute Windows batch command' marked build as failure“”

    报错信息如下 解决方法
  • JVM垃圾回收器

    1 垃圾回收器的位置 2 垃圾回收器的基本概念 什么是垃圾回收器 JVM 为 Java 提供了垃圾回收机制 是一种偏自动的内存管理机制 简单来说 垃圾回收器会自动追踪所有正在使用的对象 并将其余未被使用的对象标记为垃圾 JVM会自动进行垃圾
  • 前端知识

    http www yyyweb com 5136 html 当经历所有大厂的实习后 小鱼 发布于 2018 08 15 分类 程序人生 阅读 43 评论 0 七月虽然不是一个丰收的季节 但却是一个十分酷热的月份 不知有多少小伙伴跟我一样 顶
  • MySQL server和workbench安装使用

    1 安装Notepad 运行下载的 npp 7 9 Installer x64 exe 2 安装MySQL 将mysql 8 0 22 winx64 zip解压缩 我将其放置D盘根目录下 进入文件夹 在目录中新建文件夹data和文件my i
  • docker登录私有镜像仓库时报错: x509: certificate signed by unknown authority

    文章目录 描述 报错 解决步骤 描述 由于机器在内网无法使用yum或rpm安装docker 所以使用的是离线安装 安装完成后 发现无法登录镜像地址 报错 Error response from daemon Get https swr cn
  • 队列的应用——(一)广度优先搜索

    在队列中 同样可以用于走迷宫 而且会出现一个与之前不同的情形 代码如下 C myqueue h include
  • OTA-apache本地服务器的搭建以及配置说明

    1 下载适配到本机型的Apache msi软件 这里我的电脑是32位的 下载的是apache 2 2 8 win32 x86 no ssl msi 2 apache环境变量的搭建 在计算机系统 gt 高级 gt 环境变量下的PATH后面添加
  • 一次注册表事故--无法打开exe文件

    下载了腾讯手游助手之后发现exe 的安装程序打不开 这就很郁闷了 下载了不同版本的都是打不开 难道是安装包有问题 为什么别人的电脑就能安装 我的电脑exe文件都能打开 为什么就腾讯手游助手不能打开呢 去网上搜集解决方法 百度经验上看到 说是
  • Cuda10.1总结1-概述

    概述 参考文献 官方在线文档 https docs nvidia com cuda archive 10 1 由于网页加载速度比较慢 可以参考如下文档 CUDA C Programming Guide C编程指南 CUDA C Best P
  • Android利用GridView制作横向列表

    p p p p p 1 在Activity对应的xml内 p p p pre class html pre
  • CSS重构

    1 重构和架构 重构是指在不改变代码行为的前提下 重写代码 使其更加简洁 易于复用 架构是指软件项目的各个不同部件之间的组合方式 优秀的架构 可预测 可以对软件的工作方式和结构做出准确的假设 可复用 在多处使用同一代码 无需重写 可扩展 比
  • 索引 第2关:用alter table创建索引

    任务描述 使用ALTER TABLE语句 1 为product商品表的descn商品详情的前两个字符和catid目录编号列添加索引descn catid 2 为product商品表的name商品名列添加唯一性索引unique name 3
  • qt自定义控件-多类别提示框

    一 前言 用惯了自带的messagebox 或者感觉效果不是很好看 或者有界面的特殊美观需求等等 那么就定制吧 1 单选项提示框 2 双选项提示框 3 滚动选项提示框 4 密码提示框 5 多组合选项提示框1 6 多组合选项提示框2 7 多组
  • 【华为OD机试真题2023 JS】快递投放问题

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 快递投放问题 知识点图BFS搜索 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 有N个快递站点用字符串标识 某些站点之间有道路连接 每个站点有一些包裹要运输 每
  • java.lang.RuntimeException: com.intellij.ide.plugins.PluginManager

    描述 在mac电脑上的Android Studio 因为项目需求 加载plugins中的dart和Flutter插件 经过科学上网后 依然无法从AS中加载进来 曲折到Jetbrains官网下载了dart和Flutter的插件包 再引入到AS
  • PyCharm常用快捷键

    00 万能搜索 可以搜索文件名 类名 方法名 还可以搜索目录名 搜索目录的技巧是在在关键字前面加斜杠 Double Shift 01 代码智能提示 由于PyCharm默认的代码智能提示是 Ctrl Space 但是因为Ctrl Space是
  • LESS-23 LESS-25 LESS-25a

    LESS 23 源码 以此可知可以通过报错注入等方式 语法 mixed preg replace mixed pattern mixed replacement mixed subject int KaTeX parse error Exp
  • docker应用安装之部署Springboot项目

    docker部署springboot项目分为以下2步 springboot项目的JAR包生成镜像文件 将镜像文件生成容器 并完成部署 一 springboot项目的JAR包生成镜像文件 编写Dockerfile文件 执行以下命令 mkdir