我在我的主目录中运行了这个命令:
res.sendFile('public/index.html')
并且在我知道发生了什么之前它向Docker守护程序发送了20 GB文件。我的笔记本电脑上没有空间了。如何删除已复制的文件?我无法找到它们。
答案 0 :(得分:4)
运行docker build .
命令时会发生什么:
Dockerfile
的文件。如果该文件不存在,则抛出错误。.dockerignore
的文件。如果该文件存在,Docker客户端将在下一步中使用它。如果不存在则没有任何反应。tar
的{{1}}包。默认情况下,它包含与build context
在同一目录中的所有内容。如果Dockerfile
文件中有一些ignore
规则,则Docker客户端会排除.dockerignore
规则中指定的那些文件。ignore
发送到名为build context
或Docker daemon
的Docker引擎。Docker server
并开始构建图像,逐步在build context
中定义。Dockerfile
将被释放。因此,如果只需要所有构建上下文,那么构建上下文不会复制到您刚创建的映像中的任何位置。您可以运行以下方法检查图像大小:build context
。如果您看到一些未使用或不必要的图像,请使用docker images
。
如果您的图片不需要构建环境中的所有内容,建议您使用docker rmi unusedImageName
规则来减少.dockerignore
大小。排除图像不需要的所有内容。这样,构建过程会更短,您将看到build context
中是否存在任何配置错误的COPY
或ADD
步骤。
例如,我使用这样的东西:
Dockerfile
答案 1 :(得分:1)
结果图像可能正在使用空间。找到并删除它:
docker images
按size
列搜索。
然后将其删除:
docker rmi <image-id>
您还可以删除所有与docker相关的内容:
docker system prune -a
答案 2 :(得分:1)
如果出于某种原因停止构建上下文,您可以使用 root access 转到/ var / lib / docker / tmp /,然后删除docker builder的tmp文件。在这种情况下,构建上下文不能正确构建,因此它构建的部分保存在 / var / lib / docker / tmp /
中的tmp文件中