Dockerfile构建镜像

Dockerfile构建镜像

Dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像,另外,使

Dockerfile去构建镜像好比使用pom去构建maven项目一样,有异曲同工之妙

基本结构

Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。

一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

准备工作

创建文件夹上传jdk的安装包,和在同级目录下编写Dockerfile文件

编写 Dockerfile 文件

查看镜像

docker images

创建一个文件夹,把代码复制进去

#基础镜像

FROM centos:latest

#维护者信息

MAINTAINER 22@qq.com

#操作

ENV JAVA_HOME=jdk:1.0

#启动指令

CMD echo $JAVA_HOME

构建镜像

 docker build -t sp:1 .

查看我们刚刚新建的镜像

构建镜像

配置环境变量

ENV JAVA_HOME=/project/jdk1.8.0_221

ENV CLASSPATH=.:${JAVA_HOME}/lib:

${JRE_HOME}/lib

ENV PATH=${JAVA_HOME}/bin:$PATH

新建test文件夹

把压缩包放到这个test文件夹里面

解压文件夹

Tar  -zxvf 解压包

把spring解压包也拖进来

在test文件夹里面在建一个文件,把这些代码放进去

#1.指定基础镜像,并且必须是第一条指令

FROM centos:latest

#2.指明该镜像的作者和其电子邮件

MAINTAINER xx "xx@qq.com"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录

WORKDIR /usr/local/java

#4.一个复制命令,把jdk安装文件复制到镜像中,注意:jdk*.tar.gz使用的是相对路径

ADD jdk-8u221-linux-x64.tar.gz /usr/local/java/

COPY spring.jar /usr/local/java

#5.配置环境变量

ENV JAVA_HOME=/usr/local/java/jdk1.8.0_221

ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH=$JAVA_HOME/bin:$PATH

#容器启动时需要执行的命令

CMD  java -jar spring.jar

将jre压缩包有放进来

解压jre

#1.指定基础镜像,并且必须是第一条指令

FROM centos:latest

#2.指明该镜像的作者和其电子邮件

MAINTAINER xx "xx@qq.com"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录

WORKDIR /usr/local/java

#4.一个复制命令,把jdk安装文件复制到镜像中,注意:jdk*.tar.gz使用的是相对路径

ADD jre-8u391-linux-x64.tar.gz /usr/local/java/

COPY spring.jar /usr/local/java

#5.配置环境变量

ENV JAVA_HOME=/usr/local/java/jre1.8.0_391

ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH=$JAVA_HOME/bin:$PATH

#容器启动时需要执行的命令

CMD  java -jar spring.jar

删除所有sp的镜像

grep过滤   awk拿到id删除

删除所有容器

docker rm -f $(docker ps -aq)

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

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

相关文章

Intel® SGX Instruction References(五)

文章目录 前言一、Intel SGX Instruction Syntax and Operation1.1 ENCLS Register Usage Summary1.2 ENCLU Register Usage Summary1.3 ENCLV Register Usage Summary1.4 Information and Error Codes1.5 Internal CREGs1.6 Concurrent Operation Restrictions 二、Intel SGX …

Nodejs 使用 fs-extra 模块进行目录和文件操作

在Node.js中,fs-extra模块是fs模块的扩展,提供了一些额外的功能,使文件和目录的操作更加便捷。那么我们如何使用 fs-extra 模块进行目录和文件操作呢?以下是一些常见的用法示例: 1. ensureDir/ensureDirSync - 创建目…

WuBit:聚合BRC20资产交易,续写铭文市场新浪潮

2023年的数字货币领域见证了重大的创新,尤其是比特币Ordinals协议的推出,它为铭文赛道带来了新的生命力。这一协议的核心在于将比特币分割为更小的单位——聪,并在每个聪上嵌入独特信息,从而创建了一种新颖的非同质化资产。BRC20等…

亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 王炸产品 Amazon Q,你的 AI 助手

意料之中 2023年9月25日,亚马逊宣布与 Anthropic 正式展开战略合作,结合双方在更安全的生成式 AI 领域的先进技术和专业知识,加速 Anthropic 未来基础模型的开发,并将其广泛提供给亚马逊云科技的客户使用。 亚马逊云科技开发者社…

TypeScript学习(基础篇)

前言 在现代的Web开发生态系统中,JavaScript已经成为一种必备的技术。然而,随着应用的增大,JavaScript的一些限制开始显现,例如缺乏静态类型检查和编译时错误检查。这正是TypeScript发挥作用的地方,TypeScript是一种静…

GO语言基础笔记(四):并发编程基础

目录 Goroutines 通道(Channel) 代码示例 Goroutines 定义与特点: Goroutines是Go语言中实现并发的基本单位。它比传统的线程更轻量级,拥有更小的内存占用和更快的启动时间。在Go程序中,您可以轻松地启动成千上万的G…

Redis基本介绍和使用场景

1、什么是Redis Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、…

【Linux系统基础】(2)在Linux上部署MySQL、RabbitMQ、ElasticSearch等各类软件

实战章节:在Linux上部署各类软件 前言 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,同学们跟随着课程的内容进行练习虽然可以基础掌握这些命令和技巧的使用,…

vue跑马灯

vue跑马灯 组件propscolOption 使用elementui的布局组件实现列宽度 <template><div class"lamp-container"><div class"lamp-header"><el-row :gutter"10"><el-col v-for"col in column" :key"col.pr…

12.26ARM作业

三个按键中断&#xff0c;控制对应灯亮灭 main.c #include "key_it.h"void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j);}}int main(){all_led_init();key1_it_config();key2_it_config();key3_it_config();while(1){printf("do main...\n&…

Linux c++开发-14-IO复用

什么是文件 程序员使用I/O最终都逃不过文件这个概念。 在Linux世界中文件是一个很简单的概念&#xff0c;作为程序员我们只需要将其理解为一个N byte的序列就可以了&#xff1a; b1, b2, b3, b4, … bN 实际上所有的I/O设备都被抽象为了文件这个概念&#xff0c;一切皆文件…

常用命令-设置

目录 系统配置查看系统架构屏幕演示工具合并终端命令Windows cmd命令提示符重启网卡禁止系统更新CMD运行powshell获取文件安装目录微软VC运行库合集强制刷新IP默认程序打开文件SSH免密登录关闭IE增强配置警告滑动关机最近操作记录解决谷歌翻译禁止系统休眠文件传输文件批量改名…

基于Java (spring-boot)的宠物管理系统

一、项目介绍 1、用户端功能&#xff1a; 首页&#xff1a;展示公告列表&#xff0c;宠物科普&#xff0c;介绍流浪宠物&#xff0c;热门活动。 宠物领养&#xff1a;用户搜索想要领养宠物&#xff0c;申请领养&#xff0c;查看自己领养的宠物。 宠物救助&#xff1a;用户能…

C# .Net学习笔记—— 加密和解密算法

一、四种加密方式 1、MD5不可逆加密 2、Des对称可逆加密 3、RSA非对称可逆加密 4、数字证书SSL 二、详解 1、MD5加密 public class MD5Encrypt{public static string Encrypt(string source, int length 32){if (string.IsNullOrEmpty(source)) return string.Empty;HashA…

002、使用 Cargo 创建新项目,打印 Hello World

1. Cargo 简介 Cargo 是 Rust 的构建系统和包管理工具&#xff0c;比如构建代码、下载依赖的库、构建这些库等等。在安装 Rust 时&#xff0c;Cargo也会一起安装。 2. 创建新项目的具体步骤 步骤1&#xff1a; 我们在桌面新建一个文件夹&#xff0c;用于存放后面练习用的代码文…

免费好用的10款AI配音软件,总有一款适合你

随着人工智能技术的快速进步&#xff0c;越来越多的语音合成软件开始在我们的日常生活中应用。这些软件能够将文字转化为自然流畅的语音&#xff0c;并且能够模拟各种声音和语调&#xff0c;给人们带来了巨大的便利和创造性。在这其中&#xff0c;配音软件尤其受到广泛欢迎&…

cef 问题集锦

1. Check failed: !is_bound() [1225/181834.383:FATAL:receiver.h(159)] Check failed: !is_bound(). Receiver for network.mojom.TrustedHeaderClient is already bound 解决方案: 增加命令行参数 --disable-request-handling-for-testing2. 部分网页显示乱码 解决方案: 检…

微信小程序备案流程整理

一、备案流程 [找备案入口]–[填主体信息]–[填小程序信息]–[初审]–[短信核验]–[通管局审核] 1&#xff0c;在小程序后台找到备案入口 &#xff08;1&#xff09;新的未上架小程序&#xff0c;可以在小程序首页点击【去备案】进入。 &#xff08;2&#xff09;已上架小程…

工具系列:TimeGPT_(3)处理假期和特殊日期

日历变量和特殊日期是预测应用中最常见的外生变量类型之一。它们为时间序列的当前状态提供了额外的上下文信息&#xff0c;特别是对于基于窗口的模型&#xff08;如TimeGPT-1&#xff09;而言。这些变量通常包括添加每个观测的月份、周数、日期或小时数的信息。例如&#xff0c…

Java中异常释义(Throwable; Error;)

Throwable: 总父类,表示不正常的情况 2. Error: 错误 无法解决也无法提前避免的问题通常由硬件设备或内存等问题导致 Exception:异常 可以解决或提前避免的问题通常由代码导致分类: RuntimeException:运行时异常&#xff0c;也称为未检查异常、未检异常等 编译不报错,运行报错…