文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

DockerFile 简介

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

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

DockerFile 构建过程

1.DockerFile 内容基础知识

2、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构建指令的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯