如何 enable/disable 在 docker 中构建套件?

How to enable/disable buildkit in docker?

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

$ DOCKER_BUILDKIT=1 docker build .

如何在 docker 引擎中使用此命令 enable/disable 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

您必须调整 Docker 引擎的守护程序设置,存储在 daemon.json 中,然后重新启动引擎。正如@Zeitounator 所建议的,您应该能够使用 DOCKER_BUILDKIT=0 docker build . 暂时禁用 buildkit。 Docker CLI 将解析该环境变量,并应在 docker/cli 源代码中完成 here 检查时尊重它。

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

来自 these docs。部分在命令行上,您可以在 Powershell 中这样做:

  1. 打开文件,在命令行上最简单的方法是:
notepad "$env:USERPROFILE\.docker\daemon.json"
  1. "buildkit" 的值更改为 false,使其看起来像这样:
{
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "features": {
    "buildkit": false
  }
}
  1. 重新启动 Docker 服务:
Restart-Service *docker*

或者,在 Docker 桌面上 Windows 应用:

打开仪表板 > 设置:

Select Docker Engine 并编辑 json "features" 字段以读取 false 如果不是已经:

对我来说,重新启动 docker 引擎和系统没有用。 但是在我重置出厂设置后它又开始工作了。 转到 Docker 桌面故障排除选项并重置为出厂默认设置。

在 Windows 10 x64 和 Docker 桌面上:

# Start DOS cmd prompt
set DOCKER_BUILDKIT=0
docker ...

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

案例研究

当我在命令行上使用 MobaXTerm 登录到远程 PC 时,

Docker 在命令行上出现错误。这修复了它。