1622

私はDockerを使い始めています。WordPress の基本イメージと docker-compose を使用しています。

最初のビルド中に作成されたファイル/ディレクトリを検査するために、コンテナーの 1 つに ssh しようとしています。を実行しようとしましたがdocker-compose run containername ls -la、何もしませんでした。あったとしても、単一のコマンドを実行するよりも、ディレクトリ構造をトラバースできるコンソールが必要です。Dockerでこれを行う正しい方法は何ですか?

4

27 に答える 27

389

実行中のコンテナーにバッシュするには、次のように入力します。

docker exec -t -i container_name /bin/bash

また

docker exec -ti container_name /bin/bash

また

docker exec -ti container_name sh
于 2015-10-11T01:34:24.003 に答える
28

注意:この回答は、私が書いたツールを宣伝しています。

実行中のコンテナーに「貼り付ける」ことができるコンテナー化された SSH サーバーを作成しました。このようにして、すべてのコンテナでコンポジションを作成できます。唯一の要件は、コンテナーに Bash があることです。

次の例では、'my-container' という名前のコンテナーにアタッチされた SSH サーバーを開始します。

docker run -d -p 2222:22 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e CONTAINER=my-container -e AUTH_MECHANISM=noAuth \
  jeroenpeeters/docker-ssh

ssh localhost -p 2222

この SSH サービスに (選択した SSH クライアントを使用して) 接続すると、「my-container」という名前のコンテナーで Bash セッションが開始されます。

その他のポインタとドキュメントについては、https ://github.com/jeroenpeeters/docker-ssh を参照してください。

于 2015-10-03T20:56:09.293 に答える
25

Windows で Docker を使用していて、コンテナーへのシェル アクセスを取得する場合は、次のようにします。

winpty docker exec -it <container_id> sh

ほとんどの場合、既にGit Bashがインストールされています。そうでない場合は、必ずインストールしてください。

于 2017-02-09T09:04:32.590 に答える
19

Windows コンテナーで cmd に接続するには、次を使用します。

docker exec -it d8c25fde2769 cmd

d8c25fde2769はコンテナーID です。

于 2017-06-13T08:50:11.767 に答える
1

別のオプションは、nsenterを使用することです。

PID=$(docker inspect --format {{.State.Pid}} <container_name_or_ID>)
nsenter --target $PID --mount --uts --ipc --net --pid
于 2015-05-11T17:32:49.020 に答える