2017-02-04 20 views
2

Я бегу контейнер hypriot/RPI-BusyBox-HTTPDкак SSH Docker контейнер

Я пытаюсь SSH в докер контейнер: но он дает ошибку:

[email protected]:~ $ docker exec -it cc55da85b915 bash 
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH" 

[email protected]:~ $ docker exec -it cc55da85b915 sh 
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"sh\": executable file not found in $PATH" 

утра I прямо сейчас?

+3

Что произойдет, если вы указываете полный путь на 'bash', _e.g._' docker exec -it cc55da85b915/bin/bash' (или '/ usr/local/bin/bash', или где бы находилось' bash' на этом изображении)? – Castaglia

+0

@Castaglia, который, вероятно, должен быть признанным ответом :) –

+0

@Castaglia @ZathrusWriter Я попробовал '$ docker exec -it baa50167dd75/bin/bash', но я все еще получил эту ошибку' rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go: 247: запуск процесса контейнера вызвал «exec: \»/bin/bash \ »: stat/bin/bash: нет такого файла или каталога» ' –

ответ

2

Это может быть ваш образ не имеет бинарную/bin/Баш установлен (как это было предложено ранее), у меня была та же проблема, и я был в состоянии войти в контейнер, используя/бен/ш

docker exec -ti cc55da85b915 /bin/sh 

Другим обходным решением может быть выполнение непосредственно команд без доступа к любой оболочке.

docker exec -ti cc55da85b915 ls /etc 
+0

Это работал на меня! Также вы можете рассказать нам, для чего нужны «-ти»? –

+1

@FernandoFradegrada «-t» для «tty», в основном он сообщает докере выделить сеанс терминала для выполнения команды.«-i» предназначен для интерактивной работы, докер будет продолжать слушать со стандартного ввода (клавиатура), чтобы пользователь мог ввести дополнительную команду. Вот ссылка на официальную документацию: https://docs.docker.com/engine/reference/commandline/exec/#description – poncos

0

Возможно, вам необходимо указать полный номер путь к bash, например.:

docker exec -it cc55da85b915 /bin/bash 

/usr/local/bin/bash или, или там, где Баш находится в этом изображении.

Надеюсь, это поможет!

0

У вас есть много разных форм для этого, вы можете прикрепить с помощью команды прикрепления докера.

$ 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 
Смежные вопросы