Dockerイメージダウンロード時間計算

イメージサイズと利用可能な帯域幅に基づいてDockerイメージのプル時間を見積もります。レイヤーキャッシング、圧縮、レジストリパフォーマンスの考慮事項をカバーします。

DevOps

詳細な説明

Dockerイメージダウンロード時間

Dockerイメージのプル時間はデプロイ速度、CI/CDパイプラインの所要時間、開発者の生産性に直接影響します。関連する要因を理解することでコンテナワークフローの最適化に役立ちます。

一般的なイメージサイズ

イメージ 圧縮サイズ 非圧縮
alpine:latest ~3 MB ~7 MB
node:20-slim ~60 MB ~180 MB
node:20 ~350 MB ~1 GB
python:3.12 ~350 MB ~1 GB
ubuntu:24.04 ~30 MB ~78 MB
nvidia/cuda ~2-4 GB ~5-8 GB
カスタムアプリイメージ 200-800 MB 500 MB - 2 GB

転送時間の例

node:20(圧縮350 MB)を異なる接続でプルする場合:

WiFi(50 Mbps):   350 * 8 / 50 = 56秒
オフィス(100 Mbps): 350 * 8 / 100 = 28秒
光回線(1 Gbps):    350 * 8 / 1000 = 2.8秒
CIランナー(10G):   350 * 8 / 10000 = 0.28秒

レイヤーキャッシングの効果

Dockerイメージはレイヤーで構成され、変更されていないレイヤーはローカルにキャッシュされます。一般的な更新では上位2-3レイヤーのみが変更:

フルイメージ: 350 MB(全レイヤー)
コード変更後: 15-50 MB(変更レイヤーのみ)
高速化: 7-23倍速いプル

プル時間の最適化

  1. slim/alpineベースイメージを使用してサイズを削減
  2. Dockerfileレイヤーを変更頻度の低いものから高いものへ順序付け
  3. マルチステージビルドでビルド依存関係を除外
  4. インフラの近くにレジストリミラーを構成
  5. CIランナーで一般的なイメージを事前にプル

ユースケース

CI/CDパイプライン時間を最適化するDevOpsエンジニア、Kubernetesノード帯域幅をサイジングするプラットフォームチーム、slimとフルベースイメージを選択する開発者、オートスケーリングイベントのコンテナロールアウト速度を計画するSREに活用されます。

試してみる — Bandwidth Calculator

フルツールを開く