返回顶部
首页 > 资讯 > 服务器 >Docker执行DockerFile构建过程指令解析
  • 253
分享到

Docker执行DockerFile构建过程指令解析

2024-04-02 19:04:59 253人浏览 八月长安
摘要

目录DockerFile 简介DockerFile 构建过程DockerFile 指令解析DockerFile 案例演示构建一个 myCentos 镜像DockerFile 简介 镜

DockerFile 简介

镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么那些无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。

DockerFile 是用来构建 Docker 镜像的构建文件,是由一系列命令和参数构成的脚本。

DockerFile 构建过程

1.DockerFile 内容基础知识

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

2、Docker 执行 DockerFile 的大致流程

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

3、总结

从应用软件的角度来看,Dockerfile、Docker 镜像与 Docker 容器分别代表软件的三个不同阶段

DockerFile:是软件的原材料

Docker 镜像:是软件的交付品

Docker 容器:可以认为是软件的运行态

DockerFile 面向开发,Docker 镜像成为交付标准,Docker 容器则涉及部署与运维,三者缺一不可,合力充当Docker 体系的基石

DockerFile:需要定义一个DockerFile,DockerFile定义了进程需要的一切东西。DockerFile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计 namespace 的权限控制)等等

Docker 镜像:再用 DockerFile 定义一个文件后,docker build时会产生一个 Docker 镜像,当运行 Docker 镜像时,会真正开始提供服务

Docker 容器:容器是直接提供服务

DockerFile 指令解析

指令解析
FROM镜像基础,当前新镜像是基于哪个镜像构建
MaiNTAINER镜像维护者的姓名和邮箱地址
RUN容器构建时需要运行的命令
EXPOSE当前容器对外暴露出的端口
WORKDIR指定再创建容器后,终端默认登陆的进来工作目录,一个落脚点
ENV用来构建镜像过程中设置环境变量
ADD将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
COPY类似ADD,拷贝文件和目录到镜像中,将从构建上下文件目录中<源路径>的文件/目录复制到新的一层镜像内的<目标路径>位置
VOLUME保持数据和持久化工作
CMD指定一个容器启动时要运行的命令,DockerFile 中可以有多个CMD 指令,但只有最后一个生效,CMD会被 docker run 之后的参数替换
ENTRYPOINT指定一个容器启动时要运行的命令,ENTRYPOINT 的目的和CMD 一样,都是在指定容器启动程序及参数
ONBUILD触发器(当别人在使用你的镜像制作新的镜像会触发一个动作)

DockerFile 案例演示

构建一个 mycentos 镜像

自定义mycentos使我们自己的镜像具备,登录后的默认路径为 /test,vim编辑器

#拉取基础镜像 centos:latest
	[root@docker ~]# docker pull centos
#创建工作目录 /dockerfile
	[root@docker ~]# mkdir /mydocker
#编写 dockerfile
	[root@docker ~]# vim /mydocker/dockerfile_centos
	FROM centos
	MAINTAINER zzyy<zzyy167@126.com
	RUN touch /test
	ENV MYPATH /test   #登录容器落脚点路径
	WORKDIR $MYPATH
	RUN yum install -y vim
	EXPOSE 80       #暴露的端口80
	CMD echo $MYPATH
	CMD echo "success------------ok"
	CMD /bin/bash
#构建新的镜像
	[root@docker ~]# docker build -f /mydocker/dockerfile_centos -t mycentos:test .
	……略……
	Successfully built ed8bd0ce1d67
	Successfully tagged mycenter:test
#查看新镜像
	[root@docker ~]# docker images
	REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
	mycentos            test                ed8bd0ce1d67        39 seconds aGo      300MB
	centos              latest              0f3e07c0138f        13 months ago       220MB
#启动容器
	[root@docker ~]# docker run -it mycentos:test
	[root@0cdd7d2f5595 test   #登录容器落脚点路径]# 
#验证 vim 是否安装
	[root@0cdd7d2f5595 test   #登录容器落脚点路径]# rpm -qa vim*
	vim-minimal-8.0.1763-10.el8.x86_64
	vim-common-8.0.1763-13.el8.x86_64
	vim-enhanced-8.0.1763-13.el8.x86_64
	vim-filesystem-8.0.1763-13.el8.noarch

以上就是Docker执行DockerFile构建过程指令解析的详细内容,更多关于Docker执行DockerFile构建指令的资料请关注编程网其它相关文章!

--结束END--

本文标题: Docker执行DockerFile构建过程指令解析

本文链接: https://lsjlt.com/news/145881.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Docker执行DockerFile构建过程指令解析
    目录DockerFile 简介DockerFile 构建过程DockerFile 指令解析DockerFile 案例演示构建一个 mycentos 镜像DockerFile 简介 镜...
    99+
    2024-04-02
  • 如何用dockerfile指令构建docker镜像
    本篇内容主要讲解“如何用dockerfile指令构建docker镜像”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用dockerfile指令构建docker镜像”吧!初识Dockerfile...
    99+
    2023-06-30
  • dockerfile指令构建docker镜像的示例代码
    目录初识Dockerfile编写一个自己的docker 镜像:DockerFiledocker build . 命令查看镜像是如何生成的初识Dockerfile Dockerfile...
    99+
    2024-04-02
  • Dockerfile中的保留字指令的过程解析
    目录一、Dockerfile是什么?二、Dockerfile构建过程分析三、Dockerfile保留字指令3.1、FROM3.2、MAINTAINER3.3、RUN3.4、EXPOS...
    99+
    2024-04-02
  • 分析Dockerfile中的保留字指令的过程
    这篇文章主要讲解了“分析Dockerfile中的保留字指令的过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析Dockerfile中的保留字指令的过程”吧!一、Dockerfile是什么...
    99+
    2023-06-25
  • 在Dockerfile的RUN指令中不执行守护进程的示例分析
    小编给大家分享一下在Dockerfile的RUN指令中不执行守护进程的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!不要在你的Dockerfile中的RUN指令中执行守护进程 $ cat&nbs...
    99+
    2023-06-04
  • Dockerfile文件编写及构建镜像命令解析
    目录指令解析简单的Dockerfile文件Build命令添加dockerfile参数构建镜像构建容器并端口映射启动镜像上传到远程镜像仓库部署指令解析 FROM # 基于什么镜...
    99+
    2024-04-02
  • 从源码构建docker-ce的过程分析
    目录准备环境获取源码编译前的准备工作添加dockerd的代理开始编译使用Delve调试参考准备环境 准备一台Linux主机,并在上面安装好docker-ce,安装好make,git就...
    99+
    2022-12-20
    源码构建docker-ce docker-ce docker-ce源码
  • Redis中命令执行过程的示例分析
    这篇文章将为大家详细讲解有关Redis中命令执行过程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis 是怎么执行远程客户端发来的命令的Redis cli...
    99+
    2024-04-02
  • 计算机中程序的执行是不是指令执行的一个循环过程
    这篇文章给大家分享的是有关计算机中程序的执行是不是指令执行的一个循环过程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。是,程序就是一个指令一个指令循环执行的。首先按照程序规定的次序,从内存储器取出当前执行的指令,...
    99+
    2023-06-14
  • docker操作系统的攒建过程解析
    这篇文章主要介绍“docker操作系统的攒建过程解析”,在日常操作中,相信很多人在docker操作系统的攒建过程解析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”docker操作系统的攒建过程解析”的疑惑有所...
    99+
    2023-06-04
  • SQL语句解析执行的过程及原理
    目录一、sqlSession简单介绍二、获得sqlSession对象源码分析三、SQL执行流程,以查询为例一、sqlSession简单介绍 拿到SqlSessionFactory对象...
    99+
    2024-04-02
  • useEffect 返回函数执行过程源码解析
    目录引言deletions处理当前节点的 deletions删除的 fiber 没有子节点:删除的 fiber 有子节点:向下遍历和向上遍历总结1. 遍历 deletions 数组:...
    99+
    2023-05-16
    useEffect 返回函数执行流程 useEffect 返回函数
  • 使用Docker创建FTP服务器的过程解析
    我们先了解一下FTP 文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第...
    99+
    2024-04-02
  • Django执行源生mysql语句实现过程解析
    1.使用extra方法   解释:结果集修改器,一种提供额外查询参数的机制   说明:依赖model模型 使用方式:   用在where后:     Book.objects.filter(publish...
    99+
    2022-05-11
    django 执行 mysql 语句
  • 一条SQL更新语句的执行过程解析
    目录一、执行过程二、日志模块1、物理日志redo logredo log的使用场景redolog配置2、逻辑日志binlog两阶段提交binlog使用场景前言: 上一篇文章讲解了SQ...
    99+
    2024-04-02
  • Spring@Bean注解深入分析源码执行过程
    目录AnnotationConfigApplicationContext创建创建AnnotatedBeanDefinitionReader和ClassPathBeanDefiniti...
    99+
    2023-01-10
    Spring @Bean注解 Spring @Bean Spring @Bean源码
  • Vue2 模版指令元素绑定事件执行顺序解析
    目录Vue 自定义指令的执行机制前情提要DOM绑定源码directive为什么先调用模版绑定的方法,再调用指令的方法总结Vue 自定义指令的执行机制 version: 2.6.14 ...
    99+
    2024-04-02
  • ghostscript沙箱绕过远程命令执行漏洞的示例分析
    这篇文章将为大家详细讲解有关ghostscript沙箱绕过远程命令执行漏洞的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。0x00 漏洞背景11月21号,Semmle团队的安全研究员Ma...
    99+
    2023-06-19
  • spring Boot应用如何通过Docker来实现构建、运行、发布流程
    小编给大家分享一下spring Boot应用如何通过Docker来实现构建、运行、发布流程,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. Docker 简介Docker 是一个开源的应用容器引擎,让开发者可以打包他们的...
    99+
    2023-05-30
    spring boot docker
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作