2016-10-28 166 views
3

我设置了两个swarm manager节点(mgr1,mgr2)。但是,当我尝试连接到容器时,它会引发错误消息。无法连接到码头集装箱

[[email protected] 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/     

[[email protected] ec2-user]# docker exec -it mgr1 /bin/bash 

rpc error: code = 2 desc = "oci runtime error: exec failed: exec: \"/bin/bash\": stat /bin/bash: no such file or directory"

它发生在两个服务器(MGR1,MGR2)。我还在每个节点上运行consul容器并能够连接到领事容器。

+0

有点偏离主题,但你不能使用Docker 1.12.3?因为有了这个版本,你可以使用更容易设置的群模式 –

回答

2

/bin/bash可能无法在容器中使用。您可以使用sh如下图所示

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

更新:根据意见
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 $ 
+0

我试过了,但同样的错误。 – code4geeks

+0

你的意思是上述两个命令都没有帮助?你的情况是什么样的基本形象?命令“docker ps”的输出是什么? – Rao

+0

基本映像是Amazon Linux。以下是详细信息:https://s3.amazonaws.com/va-awsconfig/343434343.PNG – code4geeks