【问题标题】:Unable to connect to docker container无法连接到 docker 容器
【发布时间】:2016-10-28 16:20:42
【问题描述】:

我设置了两个集群管理器节点(mgr1,mgr2)。但是当我尝试连接到容器时,它会抛出一条错误消息。

[root@ip-10-3-2-24 ec2-user]# docker run --restart=unless-stopped -h mgr1 --name mgr1 -d -p 3375:2375 swarm manage --replication --advertise 10.3.2.24:3375 consul://10.3.2.24:8500/                

[root@ip-10-3-2-24 ec2-user]# docker exec -it mgr1 /bin/bash

rpc 错误: code = 2 desc = "oci 运行时错误: exec failed: exec: \"/bin/bash\": stat /bin/bash: no such file or directory"

这发生在两个服务器(mgr1,mgr2)中。我还在每个节点上运行 consul 容器,并且能够连接到 consul 容器。

【问题讨论】:

  • 有点跑题但你不能使用 Docker 1.12.3 ?因为有了这个版本,您可以使用更容易设置的 Swarm 模式

标签: amazon-web-services docker docker-swarm


【解决方案1】:

/bin/bash 在容器中可能不可用。您可以使用sh,如下所示

docker exec -it mgr1 sh
docker exec -it mgr1 /bin/sh
docker exec -it mgr1 bash
docker attach mgr1

更新:基于 cmets
busybox 是非常轻量级的基于 linux 的映像,上面的一些工作非常好:

bash $ sudo docker exec -it test1 bash
rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: container_linux.go:247: starting container process caused \"exec: \\\"bash\\\": executable file not found in $PATH\"\n"
bash $ sudo docker exec -it test1 sh
/ # exit
bash $ sudo docker exec -it test1 /bin/sh
/ # exit
bash $ sudo docker attach test1
/ # exit
bash $ 

【讨论】:

  • 你的意思是以上两个命令都没有帮助?在您的情况下,基本图像是什么?命令docker ps的输出是什么?
  • 基础镜像是 Amazon Linux。这是详细信息:s3.amazonaws.com/va-awsconfig/343434343.PNG
  • 之前请求/评论的其他部分怎么样?
  • #docker exec -it mgr1 sh rpc error: code = 2 desc = "oci runtime error: exec failed: exec: \"sh\": executable file not found in $PATH"
  • 谢谢。更新的答案,请检查第三个命令。顺便问一下,你用的是ambakshi/amazon-linux图片吗?
猜你喜欢
  • 2015-05-01
  • 2020-02-29
  • 2022-01-07
  • 2017-10-05
  • 2016-04-26
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
相关资源
最近更新 更多