如何ssh docker容器

时间:2017-02-04 20:00:08

标签: docker ssh

我正在运行容器 hypriot / rpi-busybox-httpd

我正在尝试ssh到docker容器:但是它给出了错误:

{{1}}
我是马上做的吗?

8 个答案:

答案 0 :(得分:42)

可能是你的图像没有安装二进制/ bin / bash(如前所述),我有同样的问题,我能够使用/ bin / sh进入容器

docker exec -ti cc55da85b915 /bin/sh

另一种解决方法是直接执行命令而无需访问任何shell。

docker exec -ti cc55da85b915 ls /etc

答案 1 :(得分:2)

您正在使用的映像似乎未安装二进制文件 / bin / bash ,但应具有 / bin / sh

尝试:

docker exec -it cc55da85b915 sh

答案 2 :(得分:1)

您可能需要指定完整路径bash例如

docker exec -it cc55da85b915 /bin/bash

/usr/local/bin/bash,或bash位于该图片中的任何位置。

希望这有帮助!

答案 3 :(得分:1)

您有许多不同的方法,您可以使用docker的attach命令进行附加。

$ sudo docker attach cc55da85b915 #by ID

或者您可以使用docker exec命令:

$ sudo docker exec -i -t cc55da85b915 /bin/bash

如果/bin/bash失败,您可以使用适用于更多容器的/bin/sh

$ sudo docker exec -i -t cc55da85b915 /bin/sh

答案 4 :(得分:1)

如果您仍在寻找答案。这在Windows上对我有用。

winpty docker exec -it <containerid> sh

答案 5 :(得分:0)

对于基于Alpine的映像,docker exec -ti cc55da85b915 / bin / sh和docker exec -ti cc55da85b915 ls / etc可以工作。如“ Esteban Collado”所建议。

但是对于我使用的其他Linux版本, docker exec -ti cc55da85b915 bash

答案 6 :(得分:0)

尝试以下命令:

docker exec -it cc55da85b915 /bin/busybox sh

要列出所有可用的命令,请使用:

docker exec -it cc55da85b915 /bin/busybox --list

答案 7 :(得分:0)

这也与Kubernetes吊舱有关。

例如,如果您尝试连接到不包含您指定的外壳的Pod:

kubectl exec -it some-busybox-pod bash

(忙箱上没有sh的{​​{1}})。

您最终会遇到相同的错误:

bash