CTS-KB

Docker

どっかー

#コンテナ #仮想化 #DevOps #Linux

Linux カーネルの cgroups(リソース制限)と namespaces(プロセス分離) を活用し、アプリケーションを軽量なコンテナとしてパッケージ・実行するオープンソースの仮想化プラットフォーム。2013 年に登場し、現代の開発・運用の事実上の標準になっている。

Engine と Desktop の違い

種類動作環境ライセンス用途
Docker EngineLinux ネイティブOSS(Apache 2.0)サーバー・CI/CD・本番運用
Docker DesktopWindows / macOS(仮想化レイヤー必要)大企業は有料(従業員 250 名超)開発者の手元マシン

Linux 上では Docker Engine がカーネルに直結して動くため、Windows + WSL2 + Docker Desktop の 二重仮想化(Hyper-V → WSL2 → Docker) を経由する場合と比べてメモリ・I/O オーバーヘッドが大幅に少ない。

主要コマンド

コマンド役割
docker runコンテナ起動
docker compose up複数コンテナを宣言的に起動
docker buildイメージビルド
docker exec起動中コンテナ内でコマンド実行
docker system prune不要リソース削除

関連エコシステム

  • Docker Compose — 複数コンテナを docker-compose.yml で宣言的に管理
  • Dockerfile — イメージ定義の DSL
  • Docker Hub — 公式コンテナレジストリ
  • Kubernetes — 大規模運用のためのコンテナオーケストレータ(Docker は単体ホスト用)

Linux 上で動かす利点

観点Linux ネイティブWindows + WSL2 + Desktop
仮想化レイヤーカーネル直結Hyper-V → WSL2 → Docker
メモリ消費軽量30 GB+ ベース消費
I/O パフォーマンスネイティブ速度ファイル共有越しで遅延
ライセンス完全無料大企業は Desktop 有料

関連記事

関連用語

  • Linux — Docker のベース OS
  • Ubuntu — Docker Engine の主要動作環境
  • WSL2 — Windows 上での代替実行環境