【赵渝强老师】什么是Docker File?

在这里插入图片描述
  Docker 镜像是一个特殊的分层文件系统,包含应用程序和必要的依赖环境,但并不包含任何的动态信息。构建一个镜像,实际上就是为镜像中的每一层创建相应的配置。因此,可以把构建的命令语句、参数配置等信息都写入一个脚本中,这样,“docker commit”命令的无法重复的问题、镜像臃肿的问题就都被解决了。这个脚本就是 Dockerfile。

一、什么是Docker File?

  Dockerfile是一个文本文件,其内包含一条条的指令,每一条指令都用于构建镜像中的一层。Dockerfile可以使用“docker build”命令进行编译。在编译过程中,每一条指令的内容就是描述该层应如何进行构建。当我们需要定制自己额外的需求时,只需要在Dockerfile文件的基础上添加或者修改指令,重新生成新的镜像即可。
  视频讲解如下:

Docker File

【赵渝强老师】Dockerfile

二、Docker File示例

  下面通过一个简单的示例来演示如何使用Dockerfile。在这个示例中,将基于Nginx的镜像来构建一个新的镜像,并在该镜像中部署一个简单的Web网页。
(1)创建一个文件“Dockerfile”。在该文件中输入以下命令。

FROM nginx
RUN echo '<h1>This is a Demo HTML</h1>' > /usr/share/nginx/html/index.html

(2)在Dockerfile所在的目录下执行“docker build”命令构建镜像。构建的过程如下图所示。
在这里插入图片描述

提示:“docker build”命令会在当前目录下寻找名为“Dockerfile”的文件,然后对该文件进行编译生成镜像。如果文件名不是Dockerfile,则可以在使用“docker build”命令加上“-f”参数指定文件名称。

(3)查看新生成的镜像,如下图所示。
在这里插入图片描述

(4)使用新生成的镜像创建容器。

docker run -d -p 7788:80 mynginx

(5)使用浏览器访问宿主机的7788端口,可以看到如下图所示界面。
在这里插入图片描述

三、Docker File文件详解

  下图展示了 Docker 镜像、容器和 Dockerfile 三者的关系。可以看出使用 Dockerfile 文件定义镜像,然后运行镜像启动容器。
在这里插入图片描述

  下表列出了一个完整的Dockerfile 文件的组成部分。
在这里插入图片描述

  当完成了Dockerfile的编写后,使用“docker build”命令将会根据Dockerfile中上下文的内容构建新Docker镜像。整个构建的过程会被递归处理。因此,如果在Dockerfile中含有子路径或URL等信息,则它们都将被递归进行构建。

提示:在使用“docker build”进程镜像构建时,还可以通过-t参数指定生成镜像的仓库地址和标签等信息。

  Dockerfile构建镜像的过程请参考下图。

在这里插入图片描述

  “docker build”命令在使用Dockerfile生成镜像时,会通过Docker的守护进程执行Dockerfile中的每一条指令,并在每一步执行完成后生成一个新镜像。当所有的指令执行完成后,会输出最终镜像的ID。当镜像最终生成后,Docker的守护进程会自动清理Docker的上下文环境,并自动重用已生成的中间镜像,以加速构建的速度。图中方框的部分表明,在构建过程中使用到了Dockerfile的缓存机制。

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵渝强老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值