.dockerignore 文件的作用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xs20691718/article/details/79502406

点击在我的博客 xuxusheng.com 中查看,有更好的排版哦~

英文好的同学建议直接阅读文档:https://docs.docker.com/engine/reference/builder/#dockerignore-file

在项目中,我们见过很多各式各样的 ignore 文件。

比如使用 .gitignore 来忽略掉你不想追踪的文件:https://git-scm.com/docs/gitignore

使用 .npmignore 来忽略你在发布包时不想发布的文件:https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

那么 .dockerignore 文件是起什么作用的呢,不管是在 docker build 过程中,还是 docker run 的过程中,有没有这个文件好像并没有什么很大的影响,存在感不强的一个文件。

首先需要理解一下 镜像构建上下文(context) 的概念,参见另一篇博文:docker build 命令后 . 号的意思

理解了这个概念就明白,当我们在 docker build 的过程中,首先会将指定的上下文目录打包传递给 docker引擎,而这个上下文目录中可能并不是所有的文件我们都会在 Dockerfile 中使用到,那么这个时候就可以在 .dockerignore 文件中指定在传递给 docker引擎 时需要忽略掉的文件或文件夹。

举栗说明~

比如我们在前端项目中,node_modules 文件夹在构建镜像过程中如果用不到,但是又异常庞大,那么向 docker引擎 传递其实是并没有必要的(其实大家电脑性能都这么好,也不在乎这几秒钟了。。。只是举个例子,可以提升镜像构建速度),这个时候就可以将 node_modules 文件夹加入 .dockerignore 文件中。

如下所示,速度提升还是很明显的。

加入前:
这里写图片描述

加入后:
这里写图片描述

没有更多推荐了,返回首页