我正在使用boot2docker (v0.6)在OSX10.9上运行docker (v0.9.0)。一切都正常。我可以在TinyCore VM中正常使用docker。但是,在OSX中,我可以向码头管理员发出命令,但我没有收到任何输出。我也不能检索有关容器或进程的信息。例如,我可以从OSX运行:
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"我确实获得了一个容器ID,但是运行docker ps或docker images会返回一个空列表。如果我ssh进入TinyCore VM实例并运行docker ps,我可以看到容器确实已经启动并正在运行,docker logs返回'hello‘日志输出。
我需要做什么才能将输出接收回OSX主机?
发布于 2014-03-13 21:29:10
问题来自这样一个事实:您的Docker客户端(在OS上)比您的服务器(在boot2docker VM中)更新。
Docker API使用语义版本控制,因此每个调用都是对URL的HTTP请求,如下所示:
/v1.10/containers/create…服务器处理API的所有版本,因此如果您使用旧客户端(旧CLI版本,或为较旧版本的Docker设计的程序),它仍将正常工作,因为最新的Docker知道如何处理例如/v1.3/blahblahblah。
但是,如果在旧服务器上使用较新的客户端,则可能会发出/v1.12/…请求,而服务器只知道如何处理/v1.10/…。在这种情况下,服务器会给出一个奇怪的答案,比如“找不到”。
这显然会令人困惑:)
我们期待着以下改进:
/vXXX模式,如果XXX是一个不受支持的版本,它可以发出一条解释性消息;对Docker项目的贡献总是受欢迎的;虽然第二个选项可能有点棘手,但第一个选项应该相对容易;因此,这可能是将您的名字添加到Docker贡献者列表中的一个好方法:D
https://stackoverflow.com/questions/22387650
复制相似问题