如何删除发送到Docker守护进程构build上下文的文件

我在我的主目录中运行这个命令:

docker build . 

并且在我知道发生了什么之前,它向Docker守护进程发送了20 GB的文件。 我的笔记本电脑上没有空间。 如何删除已复制的文件? 我找不到他们。

运行docker build .时会发生什么? 命令:

  1. Docker客户端在命令运行的同一目录下查找名为Dockerfile的文件。 如果该文件不存在,则抛出错误。
  2. Docker客户端查找名为.dockerignore的文件。 如果该文件存在,Docker客户端将在下一步中使用该文件。 如果不存在,则什么也不发生
  3. Docker客户端生成一个名为build contexttar包。 默认情况下,它包含与Dockerfile相同目录中的Dockerfile 。 如果在.dockerignore文件中有一些ignore规则,Docker客户端将排除在ignore规则中指定的那些文件。
  4. Docker客户端将build context发送到名为Docker daemonDocker server Docker引擎。
  5. Docker引擎在运行中获取build context ,并开始构build映像,在Dockerfile定义一步一步。
  6. 图像构build完成后, build context被释放。

所以,你的构build上下文不会被复制到任何地方,而只是在你刚刚创build的图像中,只要它需要所有的构build上下文。 你可以通过运行这个docker images来检查镜像的大小。 如果您看到一些未使用或不必要的图像,请使用docker rmi unusedImageName

如果你的图像不需要构build上下文中的所有东西,我build议你使用.dockerignore规则来减lessbuild context大小。 排除对图像不需要的所有内容。 这样,构build过程会更短,您将看到Dockerfile是否存在错误configuration的COPYADD步骤。

例如,我使用这样的东西:

 # .dockerignore * # exclude everything !build/libs/*.jar # include just what I need in the image 

可能空间正在使用的结果图像。 find并删除它:

 docker images 

size栏search。

然后删除它:

 docker rmi <image-id> 

你也可以删除所有与docker相关的东西

 docker system prune -a