我通常喜欢在我的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服务吗?


当前回答

Docker被设计为在Linux上运行。但可以在macOS上的虚拟机中运行。要做到这一点有点费力,这也许就是Docker Desktop存在的首要原因。但这并不意味着你不能在Mac上舒服地使用命令行使用Docker。

一些可以考虑的选项:

您可以使用lima并在bash配置文件中添加别名docker='lima nerdctl'。 您可以在您的机器上安装一个Linux虚拟机并使用它(不推荐)。 Mac上的双引导Linux。现在甚至支持T2和M1芯片的机器。

其他回答

安装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机器。

我也有同样的问题。Docker正在运行,但无法通过CLI访问它。

对我来说,这个问题是通过执行“Docker Quickstart Terminal.app”解决的。它位于“/Applications/Docker/”文件夹中。只要我在这个终端应用程序的实例中工作,Docker就可以完美地工作。如果需要第二个窗口,我必须再次运行“快速入门”应用程序。

我有一个用于Mac安装的Docker。因此,我不确定我的解决方案是否适用于Homebrew安装。

“Docker快速启动终端”应用程序似乎本质上是一些启动终端应用程序的applescripts和一个初始化所有必要环境变量的bash启动脚本。

希望这能帮助到其他人!

我有Mac操作系统,我打开Launchpad,选择docker应用程序。 从重置选项卡单击重启。

这对我来说很管用:

open --background -a Docker

需要几秒钟才能连接到docker。

我用的是Mac OS大苏尔。

为了扩展其他答案-在花了整个上午的时间在这个确切的问题上,其他答案都没有帮助,最后我发现docker试图访问docker的错误路径。因为几个月前我安装了colima。

运行这个程序帮助我切换回原来的状态:

Docker上下文使用default