我通常喜欢在我的OSX上用brew管理我的应用程序
我能够安装docker, docker-compose和docker-machine
docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455
我没有下载并运行“Docker for Mac”应用程序。
然而,当我试图跑
> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
我已经检查了袜子档案
ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory
我也尝试了这个建议的解决方案:Mac OS X sudo docker无法连接到docker守护进程。这个主机上是否运行docker守护进程?
但是我收到了这个错误信息:
$ eval $(docker-machine env default)
Host does not exist: "default"
有可能通过命令行工具来运行docker服务吗?
安装minikube,加入黑暗面。
https://kubernetes.io/docs/tasks/tools/install-minikube/
$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
eval$(minikube docker-env)
$ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate -i /local/swagger.json -l python -o /local/test/
[main] INFO io.swagger.parser.Swagger20Parser - reading from /local/swagger.json
[main] WARN io.swagger.codegen.DefaultGenerator - 'host' not defined in the spec. Default to 'localhost'.
使用bash v5在Macbook Pro 2018上工作出色。在我看来,现在不需要安装所有其他无意义的docker了。根据我的经验,minikube附带的VM和安装脚本可以取代docker机器。
在macOS上,docker二进制文件只是一个客户端,你不能用它来运行docker守护进程,因为docker守护进程使用linux特定的内核特性,因此你不能在OS x中本机运行docker。所以你必须安装docker-machine才能创建VM并附加到它。
在macOS上安装docker-machine
如果你还没有docker-machine命令,可以通过以下方式安装它:
使用Brew命令:Brew install docker-machine docker。
手动从发布页面:
$ curl - l https://github.com/docker/machine/releases/download/v0.16.1/docker-machine- ' uname -s ' - ' uname -m ' >/usr/local/bin/docker-machine
$ chmod +x /usr/local/bin/docker-machine
参见:开始使用Mac版Docker。
Virtualbox安装
docker-machine依赖于VirtualBox的安装,如果不是这样将失败。如果您已经拥有VirtualBox,则可以跳过此步骤。
使用Homebrew: brew install—cask virtualbox
手动使用Virtualbox.org上的发行版
您需要在OS X安全面板中主动接受加载Virtualbox内核扩展,然后继续重新启动机器,以便在添加新接口时,下一个命令不会出现Error: VBoxNetAdpCtl: Error失败
在macOS上配置docker-machine
创建一个默认机器(如果你没有,请参阅:docker-machine ls):
docker-machine create --driver virtualbox default
然后为Docker客户端设置环境:
eval "$(docker-machine env default)"
然后通过列出容器进行再次检查:
docker ps
请参见:从Docker Machine和本地VM开始。
相关:
Brew安装docker不包括docker引擎?
对于Linux,请参见:Docker无法连接到Docker守护进程
对于Windows,请参见:Docker警告:无法从守护进程获取默认注册表端点