LinuCレベル3 プラットフォームスペシャリスト コンテナ技術の利用 問15
コンテナ技術の利用/コンテナの操作と管理Dockerfileの命令とDockerのコマンドに関する説明として、正しいものをすべて選べ。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「コンテナ技術の利用」に対応。実際の試験問題ではありません)
- AUSER命令で指定したユーザーは、以降のRUN命令には適用されず、コンテナ起動時のCMDやENTRYPOINTのプロセスにだけ適用される
- BADD命令は、コピー元がローカルにあるtarアーカイブ(gzip等で圧縮したものを含む)であれば、コピー先で自動的に展開する
- Cdocker historyは、停止したコンテナの中でこれまでに実行されたシェルのコマンドの履歴を、新しいものから順に一覧表示する
- Ddocker loginで認証した資格情報は、credential helperを設定していなければ、既定では ~/.docker/config.json にbase64で符号化して保存される
正解: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で符号化して保存されます。暗号化はされません。