LinuCレベル2 コンテナ 問15
コンテナ/Dockerコンテナとコンテナイメージの管理別のホストでdocker exportを使い、コンテナのファイルシステムをtarファイルrootfs.tarとして書き出した。このtarファイルから新しいイメージを作成するコマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「コンテナ」に対応。実際の試験問題ではありません)
- Adocker load -i rootfs.tar
- Bdocker commit rootfs.tar myimage
- Cdocker import rootfs.tar myimage
- Ddocker pull rootfs.tar
正解:C
解説
docker exportはコンテナのファイルシステムを1つのtarファイルとして書き出し、docker importはそのようなtarファイルからファイルシステムのイメージを作成します。exportからimportを経たイメージは、元のレイヤの構成や履歴、CMDなどの設定を引き継ぎません。レイヤや設定を保ったままイメージを別のホストへ移したい場合は、docker saveで書き出してdocker loadで読み込みます。
選択肢ごとの解説
- A誤り。docker loadは、docker saveで書き出したイメージのアーカイブを読み込むコマンドです。docker exportで書き出したtarファイルの取り込みには使えません。
- B誤り。docker commitは、既存のコンテナの現在の状態から新しいイメージを作成するコマンドで、tarファイルを引数に取りません。
- C正しい。docker importは、docker export等で作ったtarファイルからファイルシステムのイメージを作成します。
- D誤り。docker pullは、レジストリからイメージを取得するコマンドで、ローカルのtarファイルは扱いません。