我正在运行容器 hypriot / rpi-busybox-httpd
我正在尝试ssh到docker容器:但是它给出了错误:
{{1}}我是马上做的吗?
答案 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