正解: 必要なファイル権限を整えたうえでUSER命令により非rootユーザーで実行するコンテナ内でもrootで動くプロセスは、脆弱性があった場合の影響範囲を広げる可能性があります。Dockerfileでユーザーを作成する、またはベースイメージが用意するnodeなどのユーザーを使い、USER命令で実行ユーザーを切り替えるのが基本です。補足: USERを切り替える前に、アプリディレクトリやログ出力先の所有者・書き込み権限を確認しておく必要があります。A. EXPOSEで使うポートを1024以上にすればroot実行の問題はなくなる: ポート番号だけではプロセスの実行ユーザーは変わりません。B. COPYをRUNより後に移せばroot権限は自動的に外れる: 命令順序だけで実行ユーザーは変更されません。C. CMDを配列形式にすればrootではなく一般ユーザーで実行される: exec形式は起動方法の違いであり、ユーザー切り替えではありません。D. 必要なファイル権限を整えたうえでUSER命令により非rootユーザーで実行する: これが正解です。
教科書へ直接移動
読みたい分野を選べます