はじめに
この記事はDocker初学者に向けた入門シリーズの第1回です。
まずは「Dockerとは何か」「コンテナとは何か」という基本的な概念を整理します。
Dockerとは
Dockerは、コンテナ仮想化技術を使って、アプリケーションを開発・配置・実行するための隔離された環境を提供するツールです。
ざっくり言えば、「パソコンの中に、もう一つ小さな独立した環境を作れるツール」です。
コンテナとは
コンテナとは、パソコンやサーバ上で隔離され、干渉されない環境のことです。
ポイントをまとめると:
- コンテナの中には、なんでもソフトウェアを入れることができる
- コンテナの中には小さなパソコンが動いているようなイメージ
- コンテナ単体では動かせない。ホストOS(WindowsやMacなど)が必要
- ホストOS上にDockerがあり、コンテナの作成やホストOSとの仲介を担う
コンテナがあると何がいいのか
コンテナがない場合の問題
コンテナがない環境では、ホストマシンに直接ソフトウェアをインストールします。
この場合、ホストOSや既存のソフトとの干渉が発生する可能性があります。
例えば、あるソフトがPython 3.8を要求しているのに、別のソフトがPython 3.11を要求している…といったバージョン競合が起きがちです。
コンテナがある場合のメリット
メリット | 説明 |
|---|---|
干渉しない | コンテナは完全に独立しているため、ホストOSや他のソフトと干渉しない |
バージョン共存 | バージョン違いのソフトも干渉せず共存できる |
環境の再現性 | ホストOSが何であっても、コンテナ内の振る舞いは変わらない |
複数共存 | 一つのホストOS上に複数のコンテナを保持でき、互いに干渉しない |
移植が容易 | Windowsで動かしていたコンテナをMacOS上に移すことも簡単 |
ホストOSによる振る舞いの違いは、厳密にはゼロではないようです。ただし基本的には同じ動作が保証されます。
まとめ
- Dockerはコンテナを作成・管理するツール
- コンテナはホストOSから隔離された独立環境
- コンテナを使うことで、環境の干渉回避・再現性・移植性が手に入る
次回は、コンテナの元になる「イメージ」と、コンテナのライフサイクルについて解説します。
シリーズ一覧
第1回:Dockerとコンテナの基本を理解する ← 今ここ
第2回:イメージとコンテナのライフサイクル
第3回:コンテナ操作の基本コマンド集
第4回:Dockerfileでオリジナルイメージを作る
ディスカッション
(Giscus)うまく表示されない場合(クリックして再読み込み)