gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:47:13 27 4
gpt4 key购买 nike

我在我的主目录中运行了此命令:

docker build .

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

最佳答案

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

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

因此,如果仅需要所有构建上下文,您的构建上下文不会复制到您刚刚创建的镜像中的任何地方。您可以通过运行以下命令来检查图像大小:docker images。如果您看到一些未使用或不必要的图像,请使用docker rmiusedImageName

如果您的镜像不需要构建上下文中的所有内容,我建议您使用.dockerignore规则,以减少构建上下文大小。排除图像不需要的所有内容。这样,构建过程会更短,您将看到 Dockerfile 中是否存在任何配置错误的 COPYADD 步骤。

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

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

关于docker - 如何删除发送到 Docker 守护进程构建上下文的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45118244/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com