如何检测是否安装了 docker for mac?

JE4*_*E42 6 docker docker-machine docker-for-mac docker-desktop

我有一些makefiles大多数东西应该在没有配置的情况下运行的地方。这些 makefiledocker-machine过去曾使用过。

有没有办法检测bash用户是否使用docker desktop for mac而不是docker-machine

nik*_*lay 5

到目前为止我发现的最干净的方法是:

[[ $(docker version --format "{{.Server.KernelVersion}}") == *-moby ]]
Run Code Online (Sandbox Code Playgroud)


end*_*and 2

最好的方法是检查 DOCKER 环境变量是否存在:

  • DOCKER_HOST
  • DOCKER_MACHINE_NAME
  • DOCKER_TLS_VERIFY
  • DOCKER_CERT_PATH

所有这四个都是在eval $(docker-machine env)运行时设置的,并且需要与 docker-machine 一起使用。

测试版不需要设置它们中的任何一个,实际上需要您取消设置它们才能正常运行。


您还可以在命令中检查docker info查找“moby”(Mac VM 的 docker 的名称):

docker info | grep -q moby && echo "Docker for mac beta" || echo "Not docker for mac beta"
Run Code Online (Sandbox Code Playgroud)

然而,这将取决于结果的一致性docker info