为什么编译 Dockerfile 有好几个 G

在写完 dockerfile 文件后,我把他保存在一个目录下,该目录下除了 dockerfile 文件还有其他文件,然后执行编译命令,发现 Sending build context to Docker daemon 2.472GB。

➜  Downloads docker build -t nginx:v2 .
Sending build context to Docker daemon  2.472GB

这是为什么呢?

因为 Docker Client会默认发送Dockerfile同级目录下的所有文件到Dockerdaemon中。解决办法就是新建一个目录,把 dockerfile 文件放进去在该目录下执行就可以了。另外一种做法则是创建.dockerignore文件,把不需要的文件写到里面,该文件包含的目录不会被发送到Docker daemon中