2017-02-04 133 views
2

我運行容器hypriot/RPI-的busybox的httpd如何通過ssh泊塢窗容器

我想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" 

上午我馬上做?

+3

如果您指定的完整路徑會發生什麼到'bash',_e.g._'docker exec -it cc55da85b915/bin/bash'(或'/ usr/local/bin/bash',或者bash'位於該映像中的任何位置)? – Castaglia

+0

@Castaglia,應該可能是一個被接受的答案:) –

+0

@Castaglia @ZathrusWriter我試過'$碼頭執行 - 我baa50167dd75/bin/bash'但我仍然有這個錯誤'rpc錯誤:code = 2 desc = oci運行時錯誤: exec失敗:container_linux.go:247:啓動容器進程導致「exec:\」/ bin/bash \「:stat/bin/bash:沒有這樣的文件或目錄」' –

回答

2

這可能是你的形象沒有安裝二進制/斌/慶典(如之前所建議的),我有同樣的問題,我能夠使用進入容器/ bin/sh的

docker exec -ti cc55da85b915 /bin/sh 

另一個解決方法是直接執行這些命令,而無需訪問任何shell。

docker exec -ti cc55da85b915 ls /etc 
+0

It爲我工作!你也可以告訴我們什麼是-ti參數? –

+1

@FernandoFradegrada「-t」用於「tty」,基本上它告訴docker分配一個終端會話來執行命令。「-i」是用於交互式的,碼頭工人將繼續從標準輸入(鍵盤)收聽,以讓用戶引入更多命令。以下是官方文檔的鏈接:https://docs.docker.com/engine/reference/commandline/exec/#description – poncos

0

您可能需要指定完整途徑bash,例如,

docker exec -it cc55da85b915 /bin/bash 

/usr/local/bin/bash,或者無論bash的被定位在與圖像英寸

希望這會有所幫助!

0

你有很多不同的形式來做到這一點,你可以使用docker的attach命令來附加。

$ sudo docker attach cc55da85b915 #by ID 

或者你可以使用泊塢窗exec命令:

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

如果/bin/bash失敗,你可以使用/bin/sh,在多個集裝箱的工作原理:

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