docker: 'buildx' is not a docker command

  1. 1. 背景
  2. 2. 参考资料

背景

idea连接docker进行构建x构建镜像时,报了错:

ERROR: BuildKit is enabled but the buildx component is missing or broken.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/

然后执行

1
docker buildx install

报错:docker: ‘buildx’ is not a docker command

当 docker 报错 buildx is not a docker command 时,通常意味着你的 Docker CLI 没有安装或未正确配置 buildx 插件。以下是解决该问题的步骤:

  1. 检查 Docker 版本

docker-buildx 是 Docker 的扩展功能,要求 Docker 的版本是 19.03 或更高。

运行以下命令检查版本:

docker version

如果 Docker 版本过低,请升级到最新版本。

升级 Docker(Mac)
1. 打开 Docker 官方网站。
2. 下载并安装最新版本的 Docker Desktop。
3. 安装完成后,重启终端并运行:

docker version

  1. 检查 Buildx 是否已安装

docker-buildx 是一个 CLI 插件,通常在 Docker Desktop(Mac)中自带。如果没有安装或配置错误,可以通过以下方式安装。

验证 Buildx 是否已存在

运行以下命令:

docker buildx version

•	如果输出 Buildx 版本信息,则插件已经安装。
•	如果显示 docker: 'buildx' is not a docker command,请按照以下步骤安装。
  1. 安装 Buildx

手动安装 Buildx 插件
1. 创建插件目录:

mkdir -p ~/.docker/cli-plugins

2.	下载最新的 docker-buildx 二进制文件:
1
2
3
4
5
## Mac arm64 v0.19.3 其他版本架构可以从上面的链接获取
curl -fsSL hhttps://github.com/docker/buildx/releases/download/v0.19.3/buildx-v0.19.3.darwin-arm64 -o ~/.docker/cli-plugins/docker-buildx
# 或者直接通过浏览器下载,然后移动文件位置
# 假设下载位置为Downloads
sudo mv ~/Downloads/buildx-v0.19.3.darwin-arm64 ~/.docker/cli-plugins/docker-buildx
3.	赋予执行权限:
1
chmod +x ~/.docker/cli-plugins/docker-buildx
4.	验证安装:
1
2
3
docker buildx version
# 设置默认
docker buildx install
  1. 配置 Buildx

如果 Buildx 已安装,但还未配置 builder,需要初始化它。
1. 创建 Builder

1
docker buildx create --name mybuilder --use
2.	检查 Builder
1
docker buildx ls

如果看到类似以下内容,说明 Builder 配置成功:

1
2
3
NAME/NODE    DRIVER/ENDPOINT             STATUS   PLATFORMS
mybuilder * docker-container running linux/amd64, linux/arm64, linux/arm/v7
default docker inactive
3.	启动 Builder
1
docker buildx inspect --bootstrap
  1. 启用 BuildKit(可选)

Buildx 是基于 Docker BuildKit 的,需要确保 BuildKit 已启用。

启用 BuildKit

运行以下命令:

1
export DOCKER_BUILDKIT=1

为了永久生效,可以将该环境变量写入 ~/.zshrc 或 ~/.bashrc:

1
2
echo "export DOCKER_BUILDKIT=1" >> ~/.zshrc
source ~/.zshrc
  1. 测试 Buildx

运行以下命令测试:

1
docker buildx build --platform linux/amd64,linux/arm64 -t myimage:latest --push .

如果 Buildx 工作正常,你将能够构建多平台镜像。

  1. 常见问题及解决方法

问题 1:docker buildx 命令仍然不可用
• 确保插件安装在正确的位置:~/.docker/cli-plugins/。
• 确保文件权限正确:

1
chmod +x ~/.docker/cli-plugins/docker-buildx

问题 2:Docker CLI 没有识别插件
• 如果 CLI 未正确加载插件,请重启终端或重启 Docker Desktop。
• 检查环境变量是否设置:

1
echo $PATH

确保路径中包含 Docker 的安装目录(如 /usr/local/bin)。

问题 3:Builder 状态为 Inactive
• 运行以下命令启动 Builder:

1
docker buildx inspect --bootstrap

参考资料