Docker自定义镜像实现(SpringBoot程序为例)

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。
🍎个人主页:Meteors.的博客
💞当前专栏:知识备份
✨特色专栏:知识分享
🥭本文内容:Docker自定义镜像实现(SpringBoot程序为例)
📚 ** ps **  :阅读文章如果有问题或者疑惑,欢迎在评论区提问或指出。


目录

一. 说明

二.  实现步骤

附加


一. 说明

        Docker自定义镜像指的是用户根据自己的需求和规范,使用Dockerfile或其他方式创建的一个Docker镜像。

Dockerfile说明:

        DockerFile是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:

指令说明示例
FROM指定基础镜像

FROM centos: 6

ENV设置环境变量,可在后面指令使用ENV key value
COPY拷贝本地文件到镜像的指定目录COPY ./jre11.tar.gz /tmp
RUN执行Linux的shell命令,一般是安装过程的命令

RUN tar -zxvf /tmp/jre11.tar.gz && EXPORT path=/tmp/jre11:$path

EXPOSE指定容器运行时的监听的端口,给镜像使用者看EXPOSE 8080
ENTRYPOINT镜像中应用的启动命令,容器运行时调用ENTRYPOINT java -jar xx.jar

ps:官网文档

        这个镜像需要包含特定的操作系统、软件、配置文件和其他必要的组件,以满足用户特定的应用或开发环境需求(镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。

       自定义Docker镜像的好处:用户可以根据自己的需要定制镜像内容,从而实现快速部署、可扩展性和可移植性。


二.  实现步骤

        以运行一个SpringBoot程序为例,部署步骤如下:

  1. 将Java项目进行打包
  2. 编写Dockerfile文档
    # 配置jdk环境
    FROM openjdk:11.0-jre-buster
    # 设定时区
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    # 拷贝jar包到镜像内,并改名为app.jar
    COPY mp-demo-0.0.1-SNAPSHOT.jar /app.jar
    # 入口
    ENTRYPOINT ["java", "-jar", "/app.jar"]
  3. 构建镜像
    docker build -t mp-demo .
  4. 下载jdk环境(文末附下载链接)

  5. 运行镜像
    docker run -d --name mp-demo -p 8080:8080 mp-demo

 最后,通过

docker logs -f mp-demo

 我们可以看到镜像已经运行成功了,并且swagger也可以正常的访问!

附加

1. DokcerJDK11镜像tar包:

        链接: https://pan.baidu.com/s/1tXEmrhSG3bY0Xm4sT5iwhQ?pwd=8700 提取码: 8700 

2. 使用:

docker load -i jdk.tar


 最后,

        希望文章对你有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java核心: 为图片生成水印

今天干了一件特别不务正业的事,做了一个小程序用来给图片添加水印。事情的起因是需要将自己的身份证照片分享给别人,手边并没有一个趁手的工具来生成图片水印。很多APP提供了水印的功能,但会把我的图片上传到他们的服务器,身份证太…

AdSet通过审核并入驻全国SDK管理服务平台

SDK、API、H5是三种常见的APP广告接入方式,目前市面上使用最广泛的还是SDK对接,通过使用广告SDK,App开发者可以在App中展示广告商投放的广告,进而根据用户的点击赚取收益。具备一定规模流量、想快速获得收益的APP开发者都会考虑接…

使用#sortablejs插件对表格中拖拽行排序#Vue3#后端接口数据

使用#sortablejs对表格中拖拽行排序#Vue3#后端接口数据 *效果&#xff1a; 拖动表格行排序 首先安装插件sortable npm install sortablejs --save代码&#xff1a; <template><!-- sortable.js 进行表格排序 --><!-- 演示地址 --><div class"dem…

618值得推荐的洗地机有哪些?附上最全洗地机选购攻略

洗地机的出现&#xff0c;让家庭清洁变得越来越高效&#xff0c;它省时省力的洗地方式&#xff0c;自带水箱和除菌模式&#xff0c;还能减轻我们家庭清洁的负担&#xff0c;但由于目前市面上家用洗地机品牌和种类众多&#xff0c;让大家挑选起来比较困难。那么家用洗地机哪个品…

Go微服务: 关于分布式系统中的常见问题,分布式事务,以及常用解决方案

概述 在当今的互联网时代&#xff0c;分布式系统已成为支撑大规模服务、高并发和高性能应用的基石它们通过网络连接多台计算机&#xff0c;协同工作&#xff0c;共同完成任务&#xff0c;但这也引入了诸如数据一致性、网络延迟、容错性等挑战解决这些问题的关键在于设计和实施…

String,StringBuffer,StringBuilder的区别?

String是不可变的&#xff0c;StringBuffer和StringBuilder是可变的。StringBuffer是线程安全的&#xff0c;StringBuilder是非线程安全的。 String的 是如何实现的 使用拼接字符串&#xff0c;其实只是Java提供的一个语法糖。 其实String的 底层是new 了一个StringBuilde…

ssh远程管理

SSH远程管理 ssh是一种安全通道协议&#xff0c;只能用来实现字符界面的远程登录。远程复制&#xff0c;远程文本传输。 ssh对通信双方的数据进行了加密。 用户名和密码登录 密钥对认证方式&#xff08;可以实现免密登录&#xff09; ssh 端口号22 网络层 传输层 数据传输…

嵌入式软件中static的用法

目录 一、引言 二、static关键字的基本用法 四、static的使用场景 五、总结 一、引言 在嵌入式软件开发中&#xff0c;static是一个至关重要的关键字&#xff0c;用于控制变量的存储周期和可见性&#xff0c;以及函数的可见性。本报告将全面介绍static在嵌入式C语言编程中…

筛斗数据:如何利用数据提取提高营销效果?

要利用数据提取提高营销效果&#xff0c;企业需要采取一系列策略来确保他们能够从收集的数据中获取有价值的见解&#xff0c;并将这些见解应用于营销活动中。以下是一些关键步骤和策略&#xff1a; 1. 定义目标和关键绩效指标&#xff1a;在开始任何数据提取之前&#xff0c;首…

PDF格式分析(八十五)——水印注释(Watermark)

水印注释(PDF1.6及其以上版本),水印可表现为文字、图片、图像,水印大小固定,显示在页面位置固定,而不论打印页的尺寸(注意打印时,可能打印不全哟)。需要注意的是:水印注释没有弹出窗口。 水印注释字典条目如下表: 条目类型说明Subtypename(必填)本词典所描述的注释类型…

【重学C语言】十八、SDL2 图形编程介绍和环境配置

【重学C语言】十八、SDL2 图形编程介绍和环境配置 **SDL2介绍**SDL 2用途SDL 在哪些平台上运行&#xff1f;下载和安装 SDL2安装 SDL2 clion 配置 SDL2 SDL2介绍 SDL2&#xff08;Simple DirectMedia Layer 2&#xff09;是一个开源的跨平台多媒体开发库&#xff0c;主要用于游…

最优化练习题

def f(x):return x*x-4*x5 a0,b01,31、均匀搜索 令 δ ( b 0 − a 0 ) / N , a i a 0 i δ , i 1 , 2 , 3 \delta(b_0-a_0)/N,a_ia_0i\delta,i1,2,3 δ(b0​−a0​)/N,ai​a0​iδ,i1,2,3 while b0-a0>0.1:anp.linspace(a0,b0,5)for i in range(1,4):if f(a[i-1])>f…

flutter3-os:基于flutter3.x+dart3+getx手机版os管理系统

flutter3-os-admin跨平台手机后台OS系统。 原创Flutter3.22Dart3.4Getxfl_chart等技术开发仿ios手机桌面OA管理系统。自研栅格化布局引擎、自定义桌面壁纸、小部件、底部Dock菜单、可拖拽悬浮球等功能。 全新自研栅格化OS菜单布局引擎。 使用技术 编辑器&#xff1a;VScode技术…

深入理解feign远程调用的各种超时参数

1. 引言 在spring cloud微服中&#xff0c;feign远程调用可能是大家每天都接触到东西&#xff0c;但很多同学却没咋搞清楚这里边的各种超时问题&#xff0c;生产环境可能会蹦出各种奇怪的问题。 首先说下结论&#xff1a; 1)只使用feign组件&#xff0c;不使用ribbion组件&…

【Text2SQL 论文】How to prompt LLMs for Text2SQL

论文&#xff1a;How to Prompt LLMs for Text-to-SQL: A Study in Zero-shot, Single-domain, and Cross-domain Settings ⭐⭐⭐⭐ arXiv:2305.11853, NeurlPS 2023 Code: GitHub 一、论文速读 本文主要是在三种常见的 Text2SQL ICL settings 评估不同的 prompt constructio…

数据分析必备:一步步教你如何用Pandas做数据分析(18)

1、Pandas 串联 Pandas 连接的操作实例 Pandas提供了各种功能&#xff0c;可以轻松地将Series&#xff0c;DataFrame和Panel对象组合在一起。 pd.concat(objs,axis0,joinouter,join_axesNone,ignore_indexFalse)objs − 这是Series的序列或映射&#xff0c;DataFrame或Panel对…

【云岚到家】-day01-项目熟悉-查询区域服务开发

文章目录 1 云岚家政项目概述1.1 简介1.2 项目业务流程1.3 项目业务模块1.4 项目架构及技术栈1.5 学习后掌握能力 2 熟悉项目2.1 熟悉需求2.2 熟悉设计2.2.1 表结构2.2.2 熟悉工程结构2.2.3 jzo2o-foundations2.2.3.1 工程结构2.2.3.2 接口测试 3 开发区域服务模块3.1 流程分析…

Python接口自动化之使用requests库发送http请求

requests库 ​ 什么是Requests &#xff1f;Requests 是⽤Python语⾔编写&#xff0c;基于urllib&#xff0c;采⽤Apache2 Licensed开源协议的 HTTP 库。它⽐ urllib 更加⽅便&#xff0c;可以节约我们⼤量的⼯作&#xff0c;完全满⾜HTTP测试需求。 ​ 安装&#xff1a;cmd命…

docker 拉取不到镜像的问题:拉取超时

error pulling image configuration: download failed after attempts6: dial tcp 31.13.94.10:443: i/o timeout 首先设置国内的镜像源&#xff1a;复制下面直接执行 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF{"registry-mirrors"…

【POSIX】消息类的格式与使用

本文给出一个MacOS操作系统中的消息类的使用过程示例&#xff08;结合gencat命令&#xff0c;<nl_types.h>头文件以及catopen,catgets,catclose3个函数&#xff09; 首先根据对应的操作系统&#xff0c;查看 gencat 命令 man gencat 可以详细看到其中对于输入文件&…