web-dev-qa-db-ja.com

Dockerコンテナをsshする方法

コンテナを実行していますhypriot/rpi-busybox-httpd

Dockerコンテナにsshしようとしていますが、エラーが発生しています:

pi@raspberrypi:~ $ 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"

pi@raspberrypi:~ $ 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"

私はすぐにやっていますか?

23
Ciasto piekarz

あなたのイメージにバイナリ/ bin/bashがインストールされていない可能性があります(以前に提案されたように)、同じ問題があり、/ bin/shを使用してコンテナに入ることができました

docker exec -ti cc55da85b915 /bin/sh

別の回避策は、シェルにアクセスせずにコマンドを直接実行することです。

docker exec -ti cc55da85b915 ls /etc
58
Esteban Collado

使用しているイメージには、バイナリ/ bin/bashがインストールされていないようですが、/ bin/shが必要です

試してください:

docker exec -it cc55da85b915 sh
4
Alaeddine

それにはさまざまな方法があり、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
1
Asier Gomez

bashへのfullパスを指定する必要があるかもしれません、e.g。

docker exec -it cc55da85b915 /bin/bash

または/usr/local/bin/bash、またはその画像内のbashの場所。

お役に立てれば!

1
Castaglia

Alpineベースのイメージの場合、docker exec -ti cc55da85b915/bin/shおよびdocker exec -ti cc55da85b915 ls/etcが機能しました。 「エステバンコラード」が示唆するとおり。

ただし、私が使用する他のLinuxバージョンでは、docker exec -ti cc55da85b915 bash

0
super-coder