如何在 docker 中启用/禁用 buildkit?

Cod*_*gle 6 docker windows-10 dockerfile

我从文档中得到了这个命令,但我真的不知道如何使用它或者我应该从哪里开始移动,我是 docker 的新手,而且概念对我来说仍然难以消化:

$ DOCKER_BUILDKIT=1 docker build .
Run Code Online (Sandbox Code Playgroud)

如何使用此命令在 docker 引擎中启用/禁用 buildkit?

我想禁用它,因为我知道默认情况下它是启用的,我怀疑它是因为我无法通过 docker 构建任何东西,因为我总是遇到这个错误

failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount847288160/Dockerfile: no such file or directory
Run Code Online (Sandbox Code Playgroud)

Con*_*ngo 8

在 Windows 10 x64 和 Docker 桌面上:

# Start DOS cmd prompt
set DOCKER_BUILDKIT=0
docker ...
Run Code Online (Sandbox Code Playgroud)

不需要编辑任何文件、重启服务等。它只是在 Docker 运行时检查此环境变量。

案例分析

当我在命令行上使用 MobaXTerm 登录远程 PC 时,Docker 在命令行上出现错误。这解决了它。


ten*_*ive 6

您必须调整 Docker 引擎的守护程序设置,存储在 中daemon.json,然后重新启动引擎。正如@Zeitounator 所建议的那样,您应该能够使用DOCKER_BUILDKIT=0 docker build .. 泊坞窗CLI将解析环境变量和应履行它作为检查完成这里的泊坞窗/ CLI的源代码。

要调整 Docker 守护程序的 buildkit 设置,您可以按照以下说明进行操作。

这些文档。部分在命令行上,您可以在 Powershell 中以这种方式执行此操作:

  1. 打开文件,在命令行上执行此操作的最简单方法是:
notepad "$env:USERPROFILE\.docker\daemon.json"
Run Code Online (Sandbox Code Playgroud)
  1. "buildkit"to的值更改为false如下所示:
{
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "features": {
    "buildkit": false
  }
}
Run Code Online (Sandbox Code Playgroud)
  1. 重启 Docker 服务:
Restart-Service *docker*
Run Code Online (Sandbox Code Playgroud)

或者,在 Docker Desktop for Windows 应用程序上:

打开仪表板 > 设置:

选择Docker Engine并编辑 json"features"字段以读取false它是否还没有:

Docker Desktop for Windows 应用程序的屏幕截图

  • 仅当您始终希望默认情况下使用 buildkit 运行而无需设置环境变量时,您才“必须”执行所有这些操作。 (4认同)