Why It Fits
選ぶ理由
- 環境差をなくす(再現性)
- VM より軽量・高速
- イメージ共有(レジストリ)
Product Profile
Docker, Inc. / コンテナ
アプリと依存をコンテナにまとめ、どこでも同じように動かす技術。「自分の環境では動く」問題を解消する。
Specifications
Introducing
Decision Guide
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
Why It Fits
Trade-offs
Deep Dive
Docker は、アプリケーションを「コンテナ」という単位にまとめて動かすためのツールです。アプリ本体と、それが必要とするライブラリや設定をひとまとめにし、環境ごとの差をなくします。
「結局なに?」を一言でいえば、「どこでも同じ環境」を実現する仕組みです。開発機・テスト環境・本番で同じイメージを動かせるため、「自分の環境では動いたのに」という食い違いを減らせます。
アプリと依存関係を固めたものを「イメージ」と呼び、それを実行した実体が「コンテナ」です。イメージの作り方は Dockerfile に記述します。
docker build -t myapp .
docker run myapp
コンテナは OS を丸ごと仮想化する仮想マシンと違い、ホストのカーネルを共有します。そのため軽量で、起動が速いのが大きな利点です。
アプリの実行環境を統一したいとき、まず候補になります。一台で少数のコンテナを動かす範囲なら Docker だけで十分です。
ただし、多数のコンテナを複数サーバに展開し、スケールや障害復旧まで自動化する段階になると、Kubernetes などのオーケストレーションが別途必要になります。Docker は「コンテナを作って動かす」基礎を担う位置づけです。
Implementation View
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
開発環境の統一
種別: コンテナ / 提供元: Docker, Inc. / ライセンス: オープンソース+商用
VM より軽量・高速
単体ではスケール/運用機能が弱い(→ K8s)
Best Fit