【Docker基礎】DockerはLinuxを土台としている

Docker は基本的に Linux OS を前提とした技術です。
 なぜなら、Docker のコンテナはホストの Linux カーネルを利用して軽量な環境を構築する仕組みだからです。そのため、コンテナ内で動かすソフトウェアも Linux 用のプログラム でなければ動作しません。
 ここでは、なぜ Docker が Linux を土台としているのか、そして Windows や Mac でも Docker が使われる仕組みについて解説します。

なぜ Docker は Linux が必須なのか

  1. Docker が Linux カーネルの機能を使うから
    ・Docker は、名前空間(namespaces)や cgroups といった Linux 特有の機能によって、コンテナ内と外部を隔離
    ・そのため、ホスト OS は Linux である必要がある。
  2. コンテナ内の OS 周辺部分も Linux 前提
    ・コンテナには “OSもどき” が入るが、それは Linux 系のディストリビューションを前提とした周辺部分
    ・Windows 向けや Mac 向けのソフトウェアは、コンテナ内部では動作しない
  3. サーバー用途との親和性
    ・サーバーで使われる OS は Linux 系が主流
    ・Docker 自体がサーバー運用を想定して広まった背景が大きい。

コンテナには Linux 用のプログラムを入れる

 Windows や Mac のソフトウェア(Word, Excel, Photoshop, Illustrator など)は、Docker コンテナには入れられません。

  • コンテナ内で動くのは Linux 用バイナリ
  • もし Windows や Mac 用ソフトを動かそうとしても、カーネルが異なる ので動作しない。

Windows や Mac で Docker を動かす仕組み

 「Docker は Linux 上でしか動かない」なら、Windows や Mac で普段使われている Docker はどう動いているのでしょうか?
実は、どちらのケースでも 裏で Linux OS が稼働 しています。

  1. 仮想マシン(VirtualBox, VMware など)上に Linux をインストール
    ・Windows や Mac のホスト OS の上に仮想マシンを立て、そこに Linux を入れる。
    ・その Linux 上で Docker Engine を起動してコンテナを動かす
  2. Docker Desktop を利用
    ・「Docker Desktop for Windows(WSL2)」や「Docker Desktop for Mac」
    ・これらのパッケージにあらかじめ “軽量な Linux 環境” が同梱され、ユーザーが OS の違いを意識せず Docker を使えるようになっている。

WSL2 (Windows Subsystem for Linux 2)

  • Windows 10/11 で利用できる Linux カーネルを実装した軽量仮想環境
  • Docker Desktop for Windows と連携することで、Windows ユーザーでも Docker を快適に扱える。
  • 従来の Hyper-V ベースの仮想マシンより高速かつリソース効率がよい。

まとめ

  • Docker は Linux カーネルを利用する技術 なので、どうしても土台となる OS は Linux が必要
  • コンテナも Linux 用ソフトウェア を前提としており、Windows や Mac のアプリはそのままでは動かない
  • Windows/Mac で Docker を使う場合は、裏側に 仮想環境や WSL2 を用いて Linux OS を強引に入れている
  • とにかく「Docker を使うなら、どこかに Linux が必要」という点を押さえておきましょう

 ここが Docker の大きな特徴であり、独自の制限でもあります。次の章では、具体的に Linux 環境を用意する手順や、Docker Desktop の導入方法などについては、3章の「Dockerを使ってみる」で解説していきます。