クラウドとコンテナの基礎

同じベースイメージ(120 MB)の上に、それぞれ固有の層を30 MBずつ重ねた5つのイメージがある。層の圧縮やメタデータの容量は考えないものとする。1台のサーバにこの5つのイメージをすべて取得(pull)したとき、イメージが使うディスクの容量として、正しいものはどれか。

  1. A150 MB
  2. B270 MB
  3. C750 MB
答えと解説を見る

正解:B. 270 MB

イメージの層は、中身から計算したダイジェストで識別され、同じ層は1台のサーバに1回だけ保存されて、複数のイメージで共有されます。ベースイメージの層120 MBは1回分だけで、固有の層は5つで 30 MB × 5 = 150 MB なので、合計は 120 + 150 = 270 MB です。共有しないとした場合の (120 + 30) × 5 = 750 MB と比べて、480 MB少なくて済みます。ベースイメージをそろえると、取得の時間やディスクの容量を減らせます。

  • A. 120 + 30 = 150 MB は、イメージ1つ分の大きさです。固有の層は5つすべて必要です。
  • B. 正しい。120 + 30 × 5 = 270 MB です。
  • C. (120 + 30) × 5 = 750 MB は、ベースの層を共有しないとした場合の値です。
この分野を解く 分野ページへ

クラウドとコンテナの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

クラウドとコンテナの基礎のほかの問題

  1. 上のDockerfileで、docker build でイメージを作るときに実行されるコマンドと、docker run でコンテナを起動するときに実行されるコマンドの組み合わせとして、正しいものはどれか。
  2. 上のDockerfileから作ったイメージ pinger を、docker run pinger example.com として起動した。コンテナの中で実行されるコマンドとして、正しいものはどれか。
  3. ポート80で待ち受けるWebサーバのイメージ nginx から、上のコマンドでコンテナを起動した。ホストのIPアドレスを 192.0.2.10 とし、ファイアウォールなどの制限はないものとする。同じネットワークにある別のPCのブラウザから、このWebサーバに接続するURLとして、正しいものはどれか。
  4. 上のDockerfile(B)は、COPY . . の後に RUN npm ci を置いていたDockerfile(A)を、依存関係のファイルだけを先にコピーする順序に変えたものである。npm ci には120秒、npm run build には30秒、COPY . . には2秒かかり、ほかの命令の時間は無視できるものとする。1日に20回、src の下のソースコードだけを変えて(package.json と package-lock.json は変えずに)イメージを作り直す。前回のビルドのキャッシュが使えるとき、1日のビルド時間の合計で、B が A より短くなる時間として、正しいものはどれか。
  5. Dockerで、コンテナが書いたデータを残すための名前付きボリュームとバインドマウントの説明として、正しいものはどれか。