如何删除发送到Docker守护进程构build上下文的文件
我在我的主目录中运行这个命令:
docker build .
并且在我知道发生了什么之前,它向Docker守护进程发送了20 GB的文件。 我的笔记本电脑上没有空间。 如何删除已复制的文件? 我找不到他们。
运行docker build .
时会发生什么? 命令:
- Docker客户端在命令运行的同一目录下查找名为
Dockerfile
的文件。 如果该文件不存在,则抛出错误。 - Docker客户端查找名为
.dockerignore
的文件。 如果该文件存在,Docker客户端将在下一步中使用该文件。 如果不存在,则什么也不发生 - Docker客户端生成一个名为
build context
的tar
包。 默认情况下,它包含与Dockerfile
相同目录中的Dockerfile
。 如果在.dockerignore
文件中有一些ignore
规则,Docker客户端将排除在ignore
规则中指定的那些文件。 - Docker客户端将
build context
发送到名为Docker daemon
或Docker server
Docker引擎。 - Docker引擎在运行中获取
build context
,并开始构build映像,在Dockerfile
定义一步一步。 - 图像构build完成后,
build context
被释放。
所以,你的构build上下文不会被复制到任何地方,而只是在你刚刚创build的图像中,只要它需要所有的构build上下文。 你可以通过运行这个docker images
来检查镜像的大小。 如果您看到一些未使用或不必要的图像,请使用docker rmi unusedImageName
。
如果你的图像不需要构build上下文中的所有东西,我build议你使用.dockerignore
规则来减lessbuild context
大小。 排除对图像不需要的所有内容。 这样,构build过程会更短,您将看到Dockerfile
是否存在错误configuration的COPY
或ADD
步骤。
例如,我使用这样的东西:
# .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
- 如何在Dockerfile中添加除.git之类的隐藏目录之外的所有文件/目录
- Docker – php_network_getaddresses错误,当试图连接到数据库
- 在exec模式下执行RUN指令
- 无法构buildDockerfile错误:无法访问jarfile /dev/docker-files/billing/wlp-extended-8.5.5.9.jar
- Docker intercontainer通信
- 如何只推动泊坞窗图像的特定变化
- 是否有可能创build一个Docker的图像无操作系统?
- 如何将jdbc驱动程序添加到在Docker容器上运行的weblogic服务器?
- 如何向Dockerfile中的Jenkins for LDAPS添加SSL自签名证书?