‘docker exec’と’docker attach’の違いは?
docker exec
とdocker attach
は、Dockerコンテナとやり取りするためのコマンドですが、それぞれ異なる目的があります。
docker exec
は、実行中のコンテナ内でコマンドを実行するために使用されます。docker exec
の構文は以下の通りです。
docker exec [オプション] コンテナ名 コマンド [引数...]
ここで、オプション
は追加のオプションを指定するためのものであり、コンテナ名
は実行したいコマンドを実行するコンテナの名前またはID、コマンド
は実行したいコマンド、引数
はコマンドに渡す追加の引数です。
たとえば、IDがabc123
の実行中のコンテナでbashシェルを実行したい場合、次のコマンドを使用します。
docker exec -it abc123 bash
これにより、コンテナ内でインタラクティブなbashセッションが開始されます。
一方、docker attach
は、あなたのターミナルを実行中のコンテナに接続するために使用されます。docker attach
の構文は以下の通りです。
docker attach [オプション] コンテナ名
ここで、オプション
は追加のオプションを指定するためのものであり、コンテナ名
は接続するコンテナの名前またはIDです。
たとえば、IDがabc123
の実行中のコンテナにあなたのターミナルを接続したい場合、次のコマンドを使用します。
docker attach abc123
これにより、あなたのターミナルが実行中のコンテナに接続され、コンテナで実行中のプロセスの出力が表示されます。
注意点として、docker attach
は、docker exec
が行うようにコンテナ内で新しいシェルセッションを開始するわけではありません。docker attach
を使用すると、あなたのターミナルがコンテナの標準入力、出力、エラーストリームに接続され、コンテナ内で実行中のプロセスの出力を表示できるようになります。
ディスカッション
コメント一覧
まだ、コメントがありません