Docker exec コマンド
docker execこのコマンドは、実行中のコンテナ内で新しいコマンドを実行するために使用します。これは、デバッグ、追加プロセスの実行、コンテナ内部の管理操作に非常に便利です。
構文
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
よく使うパラメータ
-d, --detach: バックグラウンドでコマンドを実行します。--detach-keys: デタッチ用キーシーケンスを上書きします。-e, --env: 環境変数を設定します。--env-file: ファイルから環境変数を読み込みます。-i, --interactive: 標準入力を開いたままにします。--privileged: このコマンドに追加の権限を付与します。--user, -u: 指定したユーザーとしてコマンドを実行します。--workdir, -w: コマンドの作業ディレクトリを指定します。-t, --tty: 疑似端末を割り当てます。
例
コンテナ内でコマンドを実行する:
docker exec my_container ls /app
実行中の my_container コンテナ内で ls /app コマンドを実行し、/app ディレクトリの内容を一覧表示します。
インタラクティブモードでコマンドを実行する:
docker exec -it my_container /bin/bash
実行中の my_container コンテナ内で対話式のBashシェルを起動します。-i は標準入力を開いたままにし、-t は疑似端末を割り当てます。
バックグラウンドでコマンドを実行する:
docker exec -d my_container touch /app/newfile.txt
実行中の my_container コンテナ内でバックグラウンドで touch /app/newfile.txt コマンドを実行し、新しいファイルを作成します。
環境変数を設定する:
docker exec -e MY_ENV_VAR=my_value my_container env
実行中の my_container コンテナ内で env コマンドを実行し、環境変数 MY_ENV_VAR の値を my_value に設定します。
指定したユーザーとしてコマンドを実行する:
docker exec -u user123 my_container whoami
実行中の my_container コンテナ内で user123 ユーザーとして whoami コマンドを実行します。
作業ディレクトリを指定する:
docker exec -w /app my_container pwd
実行中の my_container コンテナ内で /app ディレクトリを作業ディレクトリとして pwd コマンドを実行します。
使用シーン
- コンテナのデバッグ: コンテナ内部に入り、デバッグや問題の調査を行います。
- 管理タスク: コンテナ内で追加の管理タスクやメンテナンス操作を実行します。
- 監視とチェック: コンテナ内で監視・チェックコマンドを実行し、稼働状態やログを取得します。
まとめ
docker execこのコマンドはDockerの中でも非常に強力なツールであり、実行中のコンテナ内で追加のコマンドを実行できます。これはコンテナのデバッグ、管理、保守に非常に役立ち、ユーザーがコンテナ内部の環境をより柔軟に制御・操作するのに役立ちます。
その他の拡張
Docker コマンド大全