Compose: [Mac] docker-compose由于“无法连接到Docker守护程序”错误而无法运行

创建于 2015-10-13  ·  31评论  ·  资料来源: docker/compose

我对docker-compose应该如何在Mac上运行感到非常困惑。 这是我采取的步骤:

1)安装了Docker Toolbox(Docker版本1.8.2)
2)尝试运行docker-compose up但按照#1885出现Illegal instruction: 4错误
3)要解决此问题,我通过sudo pip install -U docker-compose通过pip安装了docker-compose sudo pip install -U docker-compose
4)现在,当我运行docker-compose up我会得到Couldn't connect to Docker daemon - you might need to run boot2docker up .

这非常令人困惑,因为所有文档都已弃用boot2docker 。 而且尝试安装boot2docker对我也不起作用。

我不确定还有什么尝试。 当前已安装docker-compose v1.4.2。

kinquestion

最有用的评论

我们最近修复了此错误消息(此修复程序将在下一版本中)。

它应该显示“您可能需要运行docker-machine start default ”。

如果仍然无法连接,并且docker-machine正在运行,则可以配置compose以将机器与eval "$(docker-machine env default)"

所有31条评论

我们最近修复了此错误消息(此修复程序将在下一版本中)。

它应该显示“您可能需要运行docker-machine start default ”。

如果仍然无法连接,并且docker-machine正在运行,则可以配置compose以将机器与eval "$(docker-machine env default)"

好,谢谢。 看来我的问题出在Docker VM上。 即使运行常规docker命令(如docker images它也会给我带来各种TLS错误。

Get http:///var/run/docker.sock/v1.20/images/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

我将与Docker团队接洽。

更新

对于任何人也有这个问题。 我的解决方案是:

  • 运行Docker Quickstart Terminal应用
  • 运行docker-machine restart default
  • 运行eval $(docker-machine env default)

显然,每次运行快速启动终端时,您都需要运行eval $(docker-machine env default)

我遇到了同样的错误,但是我不想使用默认计算机,而是使用amazonec2驱动程序创建的另一台计算机,可以吗?

是。 Compose将使用DOCKER_HOST环境变量中设置的任何引擎(这是eval $(docker-machine env ....)

啊,谢谢,我不知道DOCKER_HOST
为什么不添加将覆盖此值的命令行参数呢?

我只想为将来访问此应用程序的任何人添加一些东西...每当我打开新的外壳程序时,我都会遇到这个问题,所以我在~/.bash_profile添加了eval $(docker-machine env default) 工作请客。 当然,这里有人可能告诉我这是一个非常糟糕的主意(TM):微笑:

是的,它有效。 但是为什么突然评估eval $(docker-machine env default)。 之前工作正常

是的,我也不确定。 也在为我工作。

eval $(docker-machine env default)为我工作! 谢谢 :)

评估“ $(docker-machine env default)”有效,谢谢!

我对将eval $(docker-machine env default)~/.bash_profile的解决方案仍然不完全满意(即使我提出了建议),因为这在打开新的终端窗口时会增加2秒的延迟。 有人有更好的主意吗?

@shankiesan alias eval_evil_docker="eval $(docker-machine env default)"

嗯,是的,我想这会起作用@michahell 。 每次您使用docker之前,仍然必须做一些事情。 不理想,但还不错!

@shankiesan我唯一看到的其他选择是导出.bash_profile中由docker-machine env default产生的变量。 是的,IP在理论上可以改变,但实际上,这种情况发生的可能性远比每天打开新Shell的延迟要小得多,如果这样做,您可以随时更新:-)

这是个好主意@lewistaylor 。 我尝试过在它不起作用之前进行尝试,但是这次是因为它一定是操作员错误。 不错,这是个好建议:+1:

@shankiesan @lewistaylor哇,不明白我没有提出来。 更好的解决方案:+1:

这个问题仍然存在,唯一的解决方法是使用

$ eval $(docker-machine env the-vm-name) // which doesnt give any output & without it we get the error
$ docker-compose up

有时我遇到同样的问题,但只有在关闭Macbook时才会出现。 如果我重新启动系统,则可能无法正常启动。 如果没有,我会重新启动,并且通常可以正常工作。 我的猜测是,仅凭猜测可能是IP /端口中的问题,因为如果我使用未关闭的程序(例如PHPStorm)重新启动笔记本电脑,通常将无法正常工作。 如果我关闭所有正在运行的程序并重新启动它,则说明它正在运行。

+1

@lewistaylor @shankiesan @michahell如何从.bash_profile中的docker-machine env default中导出变量? 我对bash不太满意,因此感谢您对实施此修复程序的帮助。

删除docker-machine / dinghy / boot2docker并在Mac上使用docker,设置为
成为官方运行时
在2016年6月3日08:03,“ nwshane” [email protected]写道:

@lewistaylor https://github.com/lewistaylor @shankiesan
https://github.com/shankiesan @michahell https://github.com/michahell
如何从docker-machine env default中导出变量
.bash_profile? 我对bash不太满意,所以我非常感谢您的帮助
实施此修复程序。

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看
https://github.com/docker/compose/issues/2180#issuecomment -223505966,
或使线程静音
https://github.com/notifications/unsubscribe/AAeWNmFAR8k9Aszni-FDcGrkfK4dVEAeks5qH9GugaJpZM4GN-hv

@nwshane只需在您喜欢的文本编辑器中编辑.bash_profile 。 例如:

nano ~/.bash_profile并添加从docker-machine env default 。 然后,您必须对该文件进行source –您可以通过打开和关闭终端会话,或者更好的是source ~/.bash_profile

那应该做。

@shankiesan太好了,谢谢! 做到了。 我以为自己必须运行docker-machine env default并从那里获取变量,这使我感到困惑,但是,当然,这就是eval "$(docker-machine env default)"作用。

$ wordpress-compose eval $(docker-machine env wordpress)
$ wordpress-compose docker ps
容器ID图像命令创建的状态端口名称
443c7386f4ef wordpress“ /entrypoint.sh apach” 7分钟前向上7分钟0.0.0.0:80->80/tcp wordpress_app
a790fdc3ca70 mysql“ docker-entrypoint.sh” 14分钟前向上14分钟0.0.0.0:3360->3306/tcp wordpress_db
$ wordpress-compose docker-compose up
错误:无法连接到Docker守护程序-您可能需要运行docker-machine start default

$ wordpress-compose docker-compose --version
docker-compose版本1.8.0-rc1,内部版本9bf6bc6

$ wordpress-compose docker --version
Docker版本1.12.0-rc2,内部版本906eacd,实验性

这是我的信息,如果我使用docker run .......mysql.....docker run ....link....wordpress ,并且可以在浏览器中访问博客。 当我想尝试docker-compose ,它不起作用。 我已删除默认计算机,现在正在使用wordpress。

能帮我找出问题所在吗?

我有同样的问题
但是我不是只使用docker-machine docker-compose
任何想法 ??

eval "$(docker-machine env default)"解决了这个问题

docker-compose中的一项特定服务存在相同的问题。

是一个权限问题...当前用户不拥有要上传到docker的文件。

@Rots相同= /

粘贴命令:
eval“ $(默认为docker-machine env)”
在您的Mac终端上

"Error checking TLS connection: machine does not exist"
现在每当我尝试使用docker-machine env default时都遇到此问题,也尝试从bash_profile加载,需要帮助!

SSL错误:发生EOF违反协议(_ssl.c:777)

此页面是否有帮助?
0 / 5 - 0 等级