如何检测是否安装了Docker for Mac?
我有一些makefile文件,其中大部分内容应该在没有configuration的情况下运行。 这些makefile过去曾经使用docker-machine。
有没有在bash中检测,如果用户是使用docker而不是docker机的mac?
最好的方法是检查DOCKER环境variables的存在性:
- DOCKER_HOST
- DOCKER_MACHINE_NAME
- DOCKER_TLS_VERIFY
- DOCKER_CERT_PATH
当eval $(docker-machine env)
运行时,所有这四个都被设置,并且需要与docker-machine一起使用。
testing版不需要设置任何一个,实际上要求您取消设置才能正常运行。
您还可以在docker info
命令中查找“moby”(mac VM的docker的名称):
docker info | grep -q moby && echo "Docker for mac beta" || echo "Not docker for mac beta"
但是,这将取决于docker info
结果的一致性。
目前为止我发现的最清洁的方式是:
[[ $(docker version --format "{{.Server.KernelVersion}}") == *-moby ]]