我在我的主目录中运行了这个命令:
docker build .
Run Code Online (Sandbox Code Playgroud)
在我知道发生了什么之前,它向 Docker 守护进程发送了 20 GB 文件。我的笔记本电脑上没有剩余空间。如何删除复制的文件?我找不到他们。
运行docker build .命令时会发生什么:
DockerfileDocker 客户端会查找与命令运行所在目录相同的文件。如果该文件不存在,则会抛出错误。.dockerignore. 如果该文件存在,Docker 客户端将在下一步中使用该文件。如果不存在,则不会发生任何事情。tar名为build context. 默认情况下,它包含与Dockerfile. 如果文件中有一些ignore规则.dockerignore,Docker 客户端会排除ignore规则中指定的那些文件。build context名为Docker daemon或 的Docker 引擎发送给 Docker 引擎Docker server。build context动态获取并开始构建镜像,一步步在Dockerfile.build context发布。因此,如果只需要所有构建上下文,您的构建上下文不会复制到您刚刚创建的映像中的任何地方。您可以通过运行以下命令检查图像大小:docker images。如果您看到一些未使用或不必要的图像,请使用docker rmi unusedImageName.
如果您的图像不需要构建上下文中的所有内容,我建议您使用.dockerignore规则来减小build context大小。排除图像不需要的所有内容。这样,构建过程会更短,您COPY将ADD看到Dockerfile.
例如,我使用这样的东西:
# .dockerignore
* # exclude everything
!build/libs/*.jar # include just what I need in the image
Run Code Online (Sandbox Code Playgroud)
生成的图像可能正在使用该空间。找到并删除它:
docker images
Run Code Online (Sandbox Code Playgroud)
按列搜索size。
然后删除它:
docker rmi <image-id>
Run Code Online (Sandbox Code Playgroud)
您还可以删除与 docker 相关的所有内容:
docker system prune -a
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6603 次 |
| 最近记录: |