exec プロセス用の環境変数を設定する
このステップでは、docker exec
で実行するコマンド専用に環境変数を設定する方法を学びます。これにより、コンテナの環境を永続的に変更することなく、コンテナ内で実行されるプロセスに設定やその他の情報を渡すことができます。
前のステップで使用した実行中のubuntu
コンテナを引き続き使用します。実行されていない場合は次のコマンドで起動します:
docker run -d ubuntu:latest sleep infinity
docker ps
を使用して実行中のubuntu
コンテナの Container ID を取得します:
docker ps
次に、コンテナ内でコマンドを実行し、その実行専用に環境変数を設定します。環境変数を表示するためにprintenv
コマンドを使用します。<container_id>
をコンテナの ID に置き換えてください。
docker exec -e MY_VARIABLE="Hello from LabEx" MY_VARIABLE < container_id > printenv
新しいオプションを見てみましょう:
-e MY_VARIABLE="Hello from LabEx"
: このオプションは、実行されるprintenv
コマンドに対してMY_VARIABLE
という名前の環境変数を"Hello from LabEx"
という値で設定します
ターミナルにHello from LabEx
と出力されるはずです。これにより、printenv
プロセスに対して環境変数が正常に設定されたことが確認できます。
この環境変数がexec
プロセス専用でコンテナのメインプロセスには設定されていないことを確認するため、-e
オプションなしで再度printenv MY_VARIABLE
を実行してみましょう:
docker exec MY_VARIABLE < container_id > printenv
今度は何も出力されないか、変数が設定されていないことを示すエラーが表示されるはずです。これにより、環境変数が-e
フラグ付きで実行されたコマンド専用に利用可能であったことがわかります。
docker exec -e
で環境変数を設定することは、コンテナ内で実行されるプロセスに動的な設定を渡す便利な方法です。