Docker(9)DockerFile

news2025/8/12 12:38:58

文章目录

  • 什么是DockerFile
  • 构建过程
    • 执行DockerFile大致流程
  • 常用保留字
  • DockerFile小案例
    • 创建dockerfile文件
    • dockerfile内部脚本
    • 执行命令
    • 虚悬镜像

什么是DockerFile

DockerFile 使用来构建Docker镜像的文本文件,是由一条条构建镜像所需要的指令和参数组成脚本

在这里插入图片描述

构建过程

  1. 保留字指令必须大写且至少跟随一个参数
  2. 指令从上到下执行
  3. # 标识注释
  4. 每条指令都会创建一个新的镜像层并对镜像进行提交

执行DockerFile大致流程

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

在这里插入图片描述

常用保留字

保留字含义
FROM基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是FROM
MAINTAINER镜像维护者的姓名和邮箱地址
RUN容器构建时需要运行的命令
EXPOSE当前容器对外暴露出的端口
WORKDIR指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
USER指定该镜像以什么样的用户去执行,如果都不指定,默认为root
ENV用来在构建镜像过程中配置环境变量
ADD将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包
COPY将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
VOLUME容器数据卷,用于数据保存和持久化工作
CMD指定一个容器启动时要执行的命令 (会被之后的CMD覆盖)
ENTRYPOINT也是指定一个容器启动时要执行的命令 (不会被之后的CMD覆盖,会将其当作参数)

DockerFile小案例

需求说明

使原始的centos具备 vim+ifconfig 这两项工具

创建dockerfile文件

vim Dockerfile

dockerfile内部脚本

FROM centos:7
 
ENV MYPATH /usr/local
WORKDIR $MYPATH
 
#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
 
EXPOSE 80

CMD echo $MYPATH
CMD echo "success--------------ok"
CMD bash

执行命令

在Dockerfile文件目录下执行

# 别落下最后的点
docker build -t centos2:1.1 .

# 查看images
docker images -a

虚悬镜像

如果执行过程中出现错误有可能出现虚悬镜像(仓库和标签号都为 )

我们可以通过以下命令进行删除虚悬镜像

docker image prune
错误有可能出现虚悬镜像(仓库和标签号都为 <none>)

我们可以通过以下命令进行删除虚悬镜像
```shell
docker image prune

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

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

相关文章

CSDN Markdown 编辑器的目录与页内跳转功能

CSDN Markdown 编辑器的目录与页内跳转功能 文章目录CSDN Markdown 编辑器的目录与页内跳转功能 目录 页内跳转 正文内容跳转到标题正文内容跳转到正文内容结语目录 CSDN Markdown 编辑器的目录功能使用[TOC](你想要显示的目录总标题)格式&#xff0c;其中默认可省略括号及括…

2022-11-06 网工进阶(三十五)---PIM-SM工作原理(组播分发树的形成、ASM、SSM)

PIM-DM的局限性 中大型组播网络中由于网络较大&#xff0c;如果依然使用PIM-DM会遇到诸多问题&#xff1a; 1 使用“扩散-剪枝”方式需要全网扩散组播报文&#xff0c;对于网络有一定冲击。 2 所有组播路由器均需要维护组播路由表&#xff0c;即使该组播路由器无需转发组播数…

ARM-A架构入门基础(一)预备知识

14天学习训练营导师课程&#xff1a;周贺贺《ARMv8/ARMv9架构-快速入门》 1. 背景 ARM全称&#xff1a; Advanced RISC Machines。 ARM处理器&#xff1a; 基于ARM公司设计的架构而研发的处理器&#xff0c;包含arm core和外设。ARM公司本身不生产处理器&#xff0c;只出售技…

RNA-seq 详细教程:分析流程介绍(1)

学习目标 了解从 RNA 提取到获取基因表达矩阵&#xff0c; 既RNA-seq 分析的整个流程。 1. workflow 进行差异表达基因分析的前提是&#xff0c;获取代表基因表达水平的矩阵。因此在进行分析前&#xff0c;必须知道基因表达矩阵是如何产生的。 在本教程中&#xff0c;将会简要的…

基于JAVA的鲜花店商城平台【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86427660 摘要 在互联网不断发展的时代之下&#xff0c;鲜花软件可以为鲜花企业带来更多的发展机会&#xff0c;让企业可以挖掘到更多的潜在用户&#xff0c;同时结合企业的优势就能够为用户…

【单目标优化求解】粒子群混沌混合蝴蝶优化算法求解最优目标问题(HPSOBOA)【含Matlab源码 1538期】

⛄一、遗传算法简介 1 算法的种群初始化 设D维搜索空间中&#xff0c;随机生成初始解的表达式为&#xff1a; 式中&#xff0c;Xi表示蝴蝶群体中第i只蝴蝶(i 1, 2, 3, …, N)空间位置&#xff0c;N表示初始解的个数&#xff1b;Lb, Ub分别表示搜索空间的上界和下界&#xff…

Linux vmware 编译模块失败。 Vmware player Unable to install all modules.

Vmware player Unable to install all modules. See log for details ubuntu下的vmware play经常会让更新模块。一起点击确认就可以正常编译更新。 而且一定要编译后才能打开虚拟机系统 但是奇怪的是&#xff0c;最近一次点击 更新&#xff0c;报错&#xff1a; 显示的英文…

STM32F103的FSMC模块驱动LCD屏幕

以下内容为对正点原子的STM32F103STM32F103STM32F103精英板的FSMCFSMCFSMC模块驱动LCDLCDLCD屏幕例程的学习。做一个记录来加强对模块的认知。 FSMCFSMCFSMC的全称是FlexiblestaticmemorycontrollerFlexible\quad static\quad memory\quad controllerFlexiblestaticmemory…

【Python+Appium】开展自动化测试(四)使用weditor进行元素定位

目录 前言 一&#xff0c;weditor的安装与使用 二&#xff0c;遇到的问题 结语 前言 上一篇我们讲到了如何通过编写一个简单的Python脚本完成了登录app的操作&#xff0c;如何断言&#xff0c;如何编写一条完整的用例。那么今天继续我们的自动化测试第四天&#xff0c;使用…

【Java进阶篇】第五章 集合(下)--Map集合

文章目录1、概述2、Map接口中的常用方法3、Map集合的遍历4、哈希表的数据结构5、Map集合的存取6、hashCode(&#xff09;和equals()的重写7、一些小零散的东西8、HashMap和Hashtable的区别9、Properties类10、TreeMap11、自定义类实现Comparable接口12、二叉树13、Comparator接…

Caffeine《一》

《Caffeine&#xff08;Java顶级缓存组件&#xff09;一》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《Caffeine&#xff08;Java顶级缓存组件&#xff09;》《Caffeine&#xff08;Java顶级缓存组件&#xff09;一》1. Caffeine缓存概念1.1 缓存的分…

【MyBatis】一、概述

框架 框架就是对通用代码的封装&#xff0c;提前写好了一堆接口和类&#xff0c;我们可以在做项目的时候直接引入这些接口和类&#xff0c;基于这些现有的接口和类进行开发&#xff0c;提高开发效率。 框架一般以jar包形式存在 三层架构 表现层&#xff08;UI&#xff09;&am…

数字化助力生产管理:计件工资管理系统

目前因市场经济的发展&#xff0c;企业为求发展同时为防止消极怠工的情况&#xff0c;常把员工工资与产量结合起来。为了增加工人的劳动积极性&#xff0c;秉持多劳多得的科学管理理念&#xff0c;许多生产类型企业均实现了计件工资制。所谓的计件工资制是指按照生产的合格品的…

python之opencv人脸识别快速体验

目录 1、灰度转换 2、引用opencv官方提供的人脸训练模型 3、绘制方框&#xff08;用于框住人脸&#xff09; 4、效果及完整代码&#xff1a; 5、检测多张人脸&#xff1a; 学习链接&#xff1a; 1、灰度转换 # 灰度转换gary cv.cvtColor(img,cv.COLOR_BGR2GRAY) 2、引…

图解:Elasticsearch 8.X 如何求解环比上升比例?

1、企业级Elasticsearch 8.X 实战问题 问题描述&#xff1a;有个聚合的需求&#xff0c;问下大家&#xff0c;一个索引中有时间字段 要求 计算本月和上月相比的环比上升比例&#xff1f;——来自GPVIP群 2、问题释义 2.1 啥叫环比&#xff1f; 环比是统计学术语&#xff0c…

LabVIEW使用Deskto pExecution Trace工具包

LabVIEW使用Deskto pExecution Trace工具包 可以使用桌面执行跟踪工具包来调试和优化大型LabVIEW应用程序&#xff0c;包括具有多个循环的应用程序、客户端-服务器架构、动态加载VI等。该工具包从本地或远程计算机桌面上运行的应用程序捕获执行事件&#xff0c;并在表窗格中显…

PCB layout有DRC为什么还要用CAM和DFM检查?

随着电子产品的高速发展&#xff0c;PCB生产中大量使用BGA、QFP、PGA和CSP等高集成度封装器件&#xff0c;PCB的复杂程度也大大增加&#xff0c;这对于PCB设计也提出了更高的要求。所以在PCB设计阶段&#xff0c;除了基础的电气性能之外&#xff0c;还需要考虑可制造性&#xf…

上游模式用于实验室用冷冻机压力和真空度的高精度控制

摘要&#xff1a;本文针对实验室用冷冻干燥机的真空度控制&#xff0c;提出了干燥过程中的真空度精密控制解决方案。解决方案主要是采用双真空计&#xff08;电容真空计和皮拉尼真空计&#xff09;测量干燥过程中的真空度变化&#xff0c;双通道PID真空度控制器一方面采集电容真…

MySQL数据库:2、MySQL的下载与安装、基本使用、系统服务制作

一、MySQL简介 ​ MySQL是一种关系型数据库管理系统&#xff0c;关系数据库将数据保存在不同的表中&#xff0c;而不是将所有数据放在一个大仓库内&#xff0c;这样就增加了速度并提高了灵活性。 二、安装与下载 1、下载流程 1、访问官方&#xff08;www.mysql.com&#xf…

数据结构学习笔记(Ⅲ):栈和队列

目录 1 栈 1.1 栈的基本概念 1.定义 2.基本操作 ​1.2 栈道顺序存储实现 1.实现 2.基本操作 3.共享栈 1.3 栈的链式存储实现 2 队列 2.1 基本概念 1.定义 2.基本操作 2.2 队列的顺序实现 1.实现 2.基本操作 2.3 队列的链式实现 1.链式存储实现队列 2.基本操…