
【Docker基礎】DockerはLinuxマシンで使用する
Docker といえば今や開発・運用に欠かせない存在ですが、実はLinux OS を前提として動作する技術です。
「えっ、でも Windows や Mac でも Docker が使えるんじゃないの?」と思う方もいるかもしれません。確かに、Windows や Mac 上で Docker を使うことは可能ですが、裏側では必ずどこかに Linux が動いています。ここでは、その理由や仕組みを解説していきます。

Docker は Linux OS が必要
Docker はもともと Linux のカーネル機能(名前空間、cgroups など) を活用して開発されたコンテナ技術です。そのため、純粋に Docker を動かすには Linux 環境 が必要になります。
Windows や Mac で Docker を使う場合は、表向きは Windows/Mac のアプリのように見えますが、内部的には Linux の仮想環境(WSL2 や Hyper-V、HyperKit など)を通して Docker が動作しています。
Windows や Mac で使うときの仕組み
「Linux が必要」と聞くと、「じゃあ Windows や Mac では動かないの?」と不安になるかもしれません。ですがご安心ください。以下のような形で 裏側に Linux を組み込むことで、Windows や Mac でも Docker を扱えるようになっています。
環境 | 仕組み |
---|---|
Windows | Docker Desktop for Windows をインストールすると、 WSL2 (Windows Subsystem for Linux 2) や Hyper-V 上で Linux VM が動作し、 その中で Docker Engine が稼働する。 |
macOS (Mac) | Docker Desktop for Mac をインストールすると、 HyperKit などを利用した軽量な Linux VM を裏で動かし、 Docker Engine が稼働する。 |
つまり表面的には Windows や Mac の操作感そのままで Docker コマンドを打てますが、実際には Linux 用の Docker Engine が裏で動いているわけです。
コンテナに入れるプログラムは Linux 用
Docker コンテナに入れるプログラムは、基本的には Linux 用のバイナリ が想定されています。例えば nginx
や mysql
のイメージを使う場合、中身は Linux 向けにコンパイルされたソフトウェアです。
Windows や Mac 上で Docker を使うときは、うっかり「自分の OS 用のプログラムをそのまま持ち込める」と思いがちですが、実際は Linux 上で動くプログラム が入っています。

Docker でよく使う基本コマンド
ここであらためて、Docker を操作するときの代表的なコマンドを見ておきましょう。どの OS でも同じコマンドを使いますが、その裏では Linux 用の Docker Engine が動いています。
コマンド | 説明 | 実行例 |
---|---|---|
docker pull <イメージ> | DockerHub などのリポジトリから イメージをダウンロード する。 ローカルに無いイメージを初めて使いたいときに実行。 | docker pull ubuntu (Ubuntu イメージを取得) |
docker images | ローカルにある Docker イメージの一覧を 表示 する。 | docker images |
docker run <イメージ> | イメージから新規にコンテナを作成&起動する。 イメージが無ければ自動で docker pull し、その後コンテナを起動。 | docker run -d -p 80:80 nginx (nginx コンテナを起動) |
docker ps | 起動中のコンテナ一覧を 表示 する。-a オプションで停止中のコンテナも含めて一覧できる。 | docker ps -a |
docker stop <コンテナID> / <コンテナ名> | 指定したコンテナを 停止 するコマンド。 | docker stop webserver |
docker rm <コンテナID> / <コンテナ名> | 停止中のコンテナを 削除 するコマンド。 | docker rm webserver |
docker rmi <イメージ名> | イメージを 削除 するコマンド。 | docker rmi ubuntu |
ポイント
docker run
は「(イメージ取得 →)コンテナ起動」の流れを一度に行う便利なコマンド-d
:バックグラウンド起動-p 80:80
:ホスト 80 番ポートとコンテナ内の 80 番ポートをマッピング
まとめ
- Docker は Linux カーネルの技術を活用 しているため、動かすには必ず Linux OS が必要。
- Windows や Mac であっても、裏側に仮想マシンや WSL2 などを用いて Linux 環境 を用意している。
- コンテナ内のプログラムは基本的に Linux 用 のものが想定されており、Windows / Mac のネイティブバイナリが動くわけではない。
Linux が必須と聞くと一見ハードルが高そうですが、Docker Desktop といった公式ツールを使えば、Windows や Mac でも違和感なく Docker を扱えます。
実際に各 OS 環境で Docker をセットアップする方法や注意点については、3章の「Dockerを使ってみる」で詳しく解説していきますので、ぜひ引き続き学んでみてください。