我对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。
我们最近修复了此错误消息(此修复程序将在下一版本中)。
它应该显示“您可能需要运行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)
最有用的评论
我们最近修复了此错误消息(此修复程序将在下一版本中)。
它应该显示“您可能需要运行
docker-machine start default
”。如果仍然无法连接,并且
docker-machine
正在运行,则可以配置compose以将机器与eval "$(docker-machine env default)"