The Word Soul

Docker

/ˈdɑkər/

ドッカー

源流

荷役作業員が埠頭で貨物を積み下ろす物理的な作業イメージ。

Image

コンテナ + 標準化 + 隔離 = ドッカー

深層理解

Dockerは、アプリケーションを「コンテナ」と呼ばれる軽量な仮想環境にパッケージ化し、どこでも実行できるようにするプラットフォームです。語源は船の「ドック(dock)」+「er(〜する人)」で、元々は「港湾作業員」を意味しますが、現代ではソフトウェアの「港湾労働者」として、アプリケーションを環境ごとに積み下ろし(デプロイ)する役割を象徴しています。

Dockerは「一度ビルドすれば、どこでも動く」という思想を提供し、開発環境と本番環境の差異をなくすことで「環境地獄」から解放します。内部ではLinuxカーネルのcgroupsnamespacesを利用してプロセスを隔離し、軽量な「コンテナ」を実現します。これは、完全な仮想マシンよりリソース消費が少なく、起動が高速です。

技術的に言えば、Dockerはコンテナ型仮想化のデファクトスタンダードであり、マイクロサービスアーキテクチャやCI/CDパイプラインに不可欠です。イメージ(設計図)からコンテナ(実行インスタンス)を作成し、Docker Hubなどのレジストリで共有可能です。

一言で言えば

It works on my machine and everywhere else with Docker.

Dockerを使えば、自分のマシンでも、どこでも動く。