我在 mac 上使用 docker 的组合。docker-cli client + colima docker engine。
这个组合下,发现 docker 自命令如 docker composedocker buildx 不能直接使用。

docker version
Client: Docker Engine - Community
 Version:           27.5.1
 API version:       1.45 (downgraded from 1.47)
 Go version:        go1.23.5
 Git commit:        9f9e405801
 Built:             Tue Jan 21 23:46:20 2025
 OS/Arch:           darwin/arm64
 Context:           colima

Server: Docker Engine - Community
 Engine:
  Version:          26.1.1
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.9
  Git commit:       ac2de55
  Built:            Tue Apr 30 11:48:47 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.31
  GitCommit:        e377cd56a71523140ca6ae87e30244719194a521
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

因为它们分别作为独立的 cli 程序安装的。

brew install docker-buildx
brew install docker-compose

** 那怎么才能和 linux 下的 docker 使用方式保持一致呢?**
搜索了一圈,找到以下做法:

❯ cd ~/.docker
❯ mkdir cli-plugins
❯ cd cli-plugins
❯ ln -s /opt/homebrew/bin/docker-buildx ./docker-buildx
❯ ln -s /opt/homebrew/bin/docker-compose ./docker-compose

接下来,便可以以自命令的方式使用 docker compose