2016-07-06 187 views
3

我有一些makefiles,其中大部分内容应该在没有配置的情况下运行。这些makefile过去曾使用docker-machine。如何检测是否安装了docker for mac?

如果用户使用docker for mac而不是docker-machine,是否在bash中检测?

回答

2

,最好的办法是检查泊坞窗环境变量的存在:

  • DOCKER_HOST
  • DOCKER_MACHINE_NAME
  • DOCKER_TLS_VERIFY
  • DOCKER_CERT_PATH

所有这四个设置当eval $(docker-machine env)运行并且需要与码头机一起使用时。

测试版不需要设置其中的任何一项,事实上要求您取消设置才能正常运行。


你也可以做一个检查在docker info命令寻找“白”(泊坞窗为Mac虚拟机的名称):

docker info | grep -q moby && echo "Docker for mac beta" || echo "Not docker for mac beta" 

这将是依赖于一致性然而,结果是docker info

+0

是啊,我在想这个问题。不过,我宁愿检查现有的“Docker for Mac” – JE42

+1

@ JE42的积极情况,我又增加了一个检查,这更正面。 – enderland

4

我发现迄今最彻底的方法是:

[[ $(docker version --format "{{.Server.KernelVersion}}") == *-moby ]]