LPIC-3 仮想化・コンテナ化Dockerとコンテナー運用基盤オリジナル・公式資料照合難易度★★★★☆
BuildKit対応のDockerビルドで、非公開パッケージを取得する短期トークンが必要である。トークンを最終イメージ・レイヤー・ビルドログへ残したくない。適切な方針はどれか。
A
DockerfileのENVへトークンを書き、最後のレイヤーだけでunsetすれば過去レイヤーも消える
ENVや過去レイヤーへ保存した内容を、後続レイヤーでのunsetだけで安全に消去できるとは限りません。
B
ビルドsecretを渡し、必要なRUNで--mount=type=secretを利用する。トークンを出力・コピーせず、取得コマンド側の保存も確認する★ 正解
必要なビルド手順に一時的にsecretを与えます。ただしコマンドがログや別ファイルへ書けば漏れるため、その挙動も検証します。
C
トークンを一度COPYし、別RUNでrmすればイメージ履歴にも常に一切残らない
後続レイヤーの削除だけでは、それ以前に取り込んだsecretが除去されたことを保証しません。
D
ファイル名をtoken.txtからcache.datへ変えれば、秘密情報ではなくなる
名前の変更は内容の秘密性や保存場所を変えません。適切な受渡し・非保存の設計が必要です。
解説
ARG/ENVやCOPYで埋め込む方式と、BuildKitのsecret mountを区別します。secret mount自体だけでツールによるログ出力・キャッシュ等まで無害になるとはいえません。
根拠資料・確認情報
対応範囲:LPIC3 305-300 v3.0
資料確認日:2026-10-28
同じレッスンの問題
問題 1
Dockerで、名前付きvolume appdataを/var/lib/appへマウントしてコンテナーを実行し、その配下だけへ業務データを書いた。あとでコンテナーだけを削除し、volume削除・pruneは行わない。同じvolumeを新コンテナーへ付ける場合、正しい説明はどれか。
問題 3
Docker Swarmにはmanagerが3台あり、worker上の既存taskは稼働中である。manager同士の通信は正常だったが、そのうち2台が停止して復旧していない。残り1台だけで新しいサービス変更を確定できるか。故障した2台をforce-new-cluster等で置き換える操作は行わない。
問題 4
Helmでreplicas=3のDeploymentをKubernetesへ導入した後、HelmのCLIは終了した。稼働Podが1個削除されたが、クラスタのcontrollerとschedulerは正常で、容量・イメージ取得・権限等にも問題がない。希望する3個へ戻す責務の説明はどれか。