過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト コンテナ技術の利用 問15

コンテナ技術の利用/コンテナの操作と管理

Dockerfileの命令とDockerのコマンドに関する説明として、正しいものをすべて選べ。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「コンテナ技術の利用」に対応。実際の試験問題ではありません)

正解:B、D

解説

ADD命令はCOPY命令と似ていますが、コピー元がローカルのtarアーカイブであれば展開してから配置する点が異なります(URLから取得したファイルは展開されません)。単にファイルをコピーしたいだけなら、動作の分かりやすいCOPYを使うのが一般的です。docker loginで得た資格情報は、credsStoreやcredHelpersでcredential helperを設定していなければ、config.jsonのauthsにbase64で符号化されて保存されます。base64は暗号化ではないため、config.jsonの取り扱いには注意が必要です。USER命令は以降のRUN・CMD・ENTRYPOINTすべてに適用され、docker historyはイメージの各レイヤーを作った命令の履歴を表示します。

選択肢ごとの解説

  • A誤り。USER命令で指定したユーザーは、以降のRUN命令にも、CMDやENTRYPOINTで起動するプロセスにも適用されます。
  • B正しい。ADD命令は、ローカルのtarアーカイブ(圧縮されたものを含む)をコピー先で自動的に展開します。COPY命令は展開しません。
  • C誤り。docker historyが表示するのは、イメージの各レイヤーを作ったDockerfileの命令などの履歴と各レイヤーのサイズです。コンテナ内のシェルの履歴ではありません。
  • D正しい。credential helperを使わない場合、docker loginの資格情報は ~/.docker/config.json にbase64で符号化して保存されます。暗号化はされません。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く