DockerFile构建过程解析

2023-11-18

DockerFile构建过程解析

1、DockerFile内容基础知识

  1. 每条保留字指令都必须为大写字母且后面要至少跟随一个参数
  2. 指令按照从上到下,顺序执行
  3. #表示注释
  4. 每条指令都会创建一个新的镜像层并对镜像进行提交

2、Docker执行DockerFile的大致流程

  1. docker从基础镜像运行一个容器
  2. 执行一条指令并对容器作出修改
  3. 执行类似docker commit的操作提交一个新的镜像层
  4. docker在基于刚提交的镜像运行一个新容器
  5. 执行dockerfile中的下一条指令直到所有指令都执行完成

3、DockerFile常用保留字指令

  • FROM:基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模版,第一条必须是FROM
  • MAINTAINER:镜像维护者的姓名和邮箱地址
  • RUN:
    • 容器构建时需要运行的命令
    • 两种格式
      • shell格式
      • exec格式
    • RUN是在docker build时运行
  • EXPOSE:当前容器对外暴露出来的端口
  • WORKDIR:指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
  • USER:指定该镜像一什么样的用户去执行,如果不指定,默认是root
  • ENV:用来在构建镜像过程中设置环境变量
  • ADD:将宿主机目录下的文件拷贝仅镜像且会自动处理URL和解压tar压缩包
  • COPY:类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中<源路径>的文件/目录复制到新的一层镜像内的<目标路径>位置
    • COPY src dest
    • COPY [“src”, “dest”]
    • <src源路径>:源文件或者源目录
    • <dest目标路径>:容器内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建
  • VOLUME:容器数据卷,用于数据保存和持久化工作。
  • CMD:
    • 指定容器启动后要做的事情
    • 注意:
      • DockerFile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
    • 它和前面的RUN命令的区别:
  • ENTRYPOINT:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DockerFile构建过程解析 的相关文章

随机推荐

  • 项目-STL空间配置器

    这篇博客主要讲一下SGI STL中的空间配置器的工作流程 一 项目背景 小块内存带来的内存碎片问题 外碎片问题 小块内存频繁申请释放带来的性能问题 二 空间配置器的思想 对于我们来说 对new和delete很熟悉 这两个函数可以分别完成内存
  • 运放中接电阻的作用

    一 基本概念 运放的基本组成 运算放大器的内部电路结构如下所示 一般由输入段 增益段 输出段等3段电路构成 输入段由差分放大段构成 用于放大两个引脚间的电压差 另外 同相信号成分 引脚间无电位差 输入相等电压的状态 不放大 起抵消作用 若仅
  • 数学期望、信息量、信息熵、相对熵、交叉熵

    1 数学期望 数学期望就是总体的均值 或者各项的加权平均 先看离散的情况 假设X为离散型随机变量 x1 x2 x3 xk为随机变量的所有可能取值 p1 p2 p3 pk为随机变量相应取值发生的概率 其中p1 p2 p3 pk 1 那么随机变
  • 安装gin失败或卡住,亲测有效!

    安装gin失败或卡住 亲测有效 本人基于最近学习完了go所有语法 对go框架进一步学习与实战 但第一步的安装就遇到了坑 也是坑了很久 网上很多的方法 但是都乱七八糟 最主要一点毛线用都没有 柳暗花明又一村 功夫不负有心人 还是让我找到了解决
  • 电阻噪声的基础知识和一个有趣的小测试

    作者 TI 专家 Bruce Trump 翻译 TI信号链工程师 Tom Wang 王中南 放大电路的噪声性能受到输入电阻和反馈电阻Johnson噪声 热噪声 的影响 大多数人似乎都知道电阻会带来噪声 但对于电阻产生噪声的细节却是一头雾水
  • PHP对二维数组里面的多字段进行排序

    PHP对二维数组里面的多字段进行排序
  • 500 G JAVA视频网盘分享(JEECG开源社区)

    500 G JAVA视频网盘分享 JEECG开源社区 涵盖从java入门到深入架构 Linux 云计算 分布式 大数据Hadoop ios Android 互联网技术应有尽有 转载 http blog csdn net zhangdaisc
  • 标识符、变量与赋值语句1

    2 2标识符 变量与赋值语句 2 2 1标识符 标识符就是一个名字 就好像我们每个人都有属于自己的名字 它的主要作用就是作为变量 函数 类 模块以及其他对象的名称 Python 中标识符的命名不是随意的 而是要遵守一定的命令规则 比如说 1
  • delete LEFT JOIN 的一个问题解决办法

    LEFT JOIN 的一个问题解决办法 今天在一个程序后台删除一个东西的时候 却出现了这个问题 Java代码 System Message MySQL Query Error User admin Time 2007 10 20 21 08
  • ubuntu18.04桌面卡住鼠标可以动 键盘失效

    大多数是在启动chrome 或者开机后几分钟内频繁操作 直接卡死 鼠标可以移动但是无法点击 视频播放有声音但画面卡住 键盘在显示界面上没有操作效果 我挂了一晚上还是这样 强制重启 crtl alt prtsc r e i s u b ubu
  • ts中定义类、类的继承、修饰符

    首先 简单介绍ES6的class类 class Foo constructor name age 实例前的构造函数 实例添加name age属性 this name name this age age getName 原型添加getName
  • linux查找postgre进程,postgresql数据库某一个进程占用大量CPU,问题排查详解

    postgresql某一个进程占用大量 CPU 问题排查 目前服务器cpu为4核 内存8G 1 查下是不是我们的业务SQL SELECT procpid START now START AS lap current query FROM S
  • Linux——在Linux系统上安装和启动MinIO

    Linux 在Linux系统上安装和启动MinIO 下载 MinIO 赋予它可执行权限 运行 优化 将 minio 添加成 Linux 的服务 使用 systemctl 启停 minio 下载 MinIO 使用以下命令 将 data 替换为
  • 经典卷积神经网络AlexNet原理详细介绍

    ImageNet Classification with Deep Convolutional Neural Networks 这篇文章的网络是在2012年的ImageNet竞赛中取得冠军的一个模型整理后发表的文章 作者是多伦多大学的Ale
  • Ogre引擎源码——资源之Skeleton

    Ogre引擎源码 资源之Skeleton 分类 OGRE 游戏开发 引擎开发 图形引擎 游戏引擎 2012 09 21 06 17 1231人阅读 评论 0 收藏 举报 引擎 animation vector binding pointer
  • Google C++编程规范 (中文版)

    点击下面的超级链接即可 Google 开源项目风格指南 C 风格指南 内容目录 0 扉页 0 1 译者前言 0 2 背景 1 头文件 1 1 Self contained 头文件 1 2 define 保护 1 3 前置声明 1 4 内联函
  • ubuntu2004 搜狗输入法

    按照这个帖子搞就行了 Ubuntu20 04LTS安装搜狗输入法
  • Qt中的C++技术 学习总结:(3)类型分类(Type Classification)技术

    设一个模板具有模板参数T 表示C 中的某种类型 有些情况下 随着T所取类型的不同 该模板会做不同的处理 在设计该模板时 我们需要了解T的具体信息 在编写一个具有模板参数T的类模板时 有时需要了解T所取类型的具体信息 以做不同的处理 这是一个
  • 使用二进制方式安装高可用k8s

    使用二进制方式安装高可用k8s 整个过程相对kubeadmin复杂 但好处是能真切了解到各组件 耐心按照步骤进行 有问题针对日志查解决办法即可 应用 版本 docker v20 10 7 kubernetes v1 20 15 Calico
  • DockerFile构建过程解析

    DockerFile构建过程解析 1 DockerFile内容基础知识 每条保留字指令都必须为大写字母且后面要至少跟随一个参数 指令按照从上到下 顺序执行 表示注释 每条指令都会创建一个新的镜像层并对镜像进行提交 2 Docker执行Doc