docker - 出现EOF错误时如何获得2个容器进行链接

标签 docker

我在机器上设置了docker-io,并且用户属于docker组,因此运行docker镜像没有问题。我有一个基于node:0.10.38的图像,可以像这样运行它:

docker run -d --name=original_node --expose=5858,8081 \
  -v /opt/users/pwebster:/opt/users/pwebster \
  pwebster/openacademy:v01 node --debug server.js \
  -c /opt/users/pwebster/orion/nodejs/search-orion.conf

这很好。当我将第二个容器链接到第一个容器时,它失败并显示了一些神秘的错误:
docker run  --link=original_node:pw --name=link_node \
  -v /opt/users/pwebster:/opt/users/pwebster -ti \
  pwebster/openacademy:v01 /bin/bash -l

然后,此命令返回错误:
FATA[0001] Post http:///var/run/docker.sock/v1.16/containers/9af64a9c282b3fbec613eec2f79f05b12919a5c558f722a0ccb292b2e96ec475/start: EOF. Are you trying to connect to a TLS-enabled daemon without TLS? 

这些配置没有什么特别的,搜索返回许多Are you trying to connect to a TLS-enabled daemon without TLS?,这似乎是默认的错误消息,但是没有任何提及Post失败的末尾带有“/ start”。

它仅包含导致--link失败的docker run。任何提示,不胜感激。

编辑: docker -d -D日志

当我再次使用/bin/bash--link运行图像时,我在/var/log/docker中得到以下内容
time="2015-04-22T08:49:19-04:00" level="debug" msg="Calling POST /containers/{name:.*}/start" 
time="2015-04-22T08:49:19-04:00" level="info" msg="POST /v1.16/containers/6f14a062cd1589d2c40238ec04042f54c7092702bad1a8ec977099aa3addfa67/start" 
time="2015-04-22T08:49:19-04:00" level="info" msg="-job allocate_interface(6f14a062cd1589d2c40238ec04042f54c7092702bad1a8ec977099aa3addfa67) = OK (0)" 
time="2015-04-22T08:49:19-04:00" level="info" msg="+job link(-I)" 
time="2015-04-22T08:49:19-04:00" level="info" msg="-job link(-I)" 
time="2015-04-22T08:49:19-04:00" level="info" msg="-job start(6f14a062cd1589d2c40238ec04042f54c7092702bad1a8ec977099aa3addfa67)" 
2015/04/22 08:49:19 http: panic serving @: strconv.ParseUint: parsing "5858,8081": invalid syntax
goroutine 73 [running]:
net/http.func·011()
    /usr/lib/golang/src/pkg/net/http/server.go:1100 +0xb7
runtime.panic(0xa38a20, 0xc2080e4600)
    /usr/lib/golang/src/pkg/runtime/panic.c:248 +0x18d
github.com/docker/docker/nat.Port.Int(0xc20863f300, 0xd, 0xc20863f30a)
    /builddir/build/BUILD/docker-1.4.1/_build/src/github.com/docker/docker/nat/nat.go:57 +0x98
github.com/docker/docker/daemon/networkdriver/bridge.LinkContainers(0xc2084f2f80, 0x7f25313d78a8)
[...snip...]
time="2015-04-22T08:49:19-04:00" level="debug" msg="Closing buffered stdin pipe" 
time="2015-04-22T08:49:19-04:00" level="debug" msg="attach: stdin: end" 
time="2015-04-22T08:49:19-04:00" level="debug" msg="attach: job 1 completed successfully" 
time="2015-04-22T08:49:19-04:00" level="debug" msg="attach: waiting for job 2/3" 
time="2015-04-22T08:49:19-04:00" level="debug" msg="attach: stdout: end" 
time="2015-04-22T08:49:19-04:00" level="debug" msg="attach: stderr: end" 

我的意思是它不喜欢我的--expose=5858,8081

最佳答案

我将原始容器上的--expose=5858,8081更改为--expose=5858 --expose=8081,问题消失了。

好像我在滥用暴露标志。

关于docker - 出现EOF错误时如何获得2个容器进行链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29783315/

相关文章:

docker - 尝试通过 Docker 安装夹层

docker - Google Cloud Container Registry 拒绝来自 docker push 的连接

java - Eureka客户端无法向eureka服务器注册服务

docker - `docker buildx build` 使用私有(private) CA 签名的 TLS 证书引用 repo 时失败

angular - 使用Nginx构建Docker镜像

bash - docker 图像输出操作

docker - 我收到错误 "exec:\"/bin/bash\": stat/bin/bash: no such file or directory": unknown

docker - 使用 Gitlab 安装 Ingress 的 Kubernetes 返回 "?"作为外部 IP

node.js - 错误 : connect ECONNREFUSED 127. 0.0.1:5432 docker 迁移

docker - Windows Docker Push 停止工作