Docker Engine
Docker Engine は Apache License, Version 2.0 で提供されているオープンソースソフトウェア(OSS)です。
Docker Engine の技術には Linux プラットフォームのものが採用されているため、基本的には Linux で動作します。Docker Desktop をインストールすることで、macOS と Windows 11 でも利用可能になります。Linux 向けには Ubuntu で使える .deb、RedHat 系で使える .rpm パッケージが公式に提供されています。
Docker Engine を利用するにあたっては、Docker Documentation にある Docker Engine インストールの概要 を見るのが確実です。Docker Desktop と比較して、対応している範囲が広いことがわかります。
CPU のサポートについては、次のとおりです。
- x86_64 / amd64
- arm64 / aarch64
- arm (32-bit)
- s390x
x86_64 / amd64 と、arm64 / aarch64 とあることから、64 bit であれば Intel 系、AMD 系、ARM 系であれば大丈夫だということがわかります。s390x はメインフレームのものなので個人で使う分には気にしなくて良いです。
arm (32-bit) があることから、ARM 系のものであれば 32 bit CPU もサポートされています。ChromeBook で使われる Chrome OS や Raspberry Pi で使われる Raspberry Pi OS で Docker Engine を動かしてみたいときは、CPU を確認しましょう。ChromeBook だと 32 bit の ARM 系であれば大丈夫です。Raspberry Pi の場合は、Pi 3B/4B/400 であれば大丈夫です。Pi Zero W/W2 もギリギリ動作しますが、試しに動かしてみる程度の使い方しかできません。
ちなみに、CPU の種類として arm64/aarch64 という表記をよく見かけます。これは CPU アーキテクチャとしては同じ分類になります。GNU 系のソフトウェアでは CPU を arm64 と認識します。clang というソフトウェアでは CPU を aarch64 と認識します。macOS は clang を使っているため、aarch64 と認識します。
対応するディストリビューションは下記の通りで、メジャーなものが使えます。ディストリビューションに依存しないバイナリー版もあります。
- CentOS
- Debian
- Fedora
- Raspbian
- RHEL
- SLES
- Ubuntu
Linux であれば、手軽に Docker Engine だけを使うことができます。他の OS を使う場合は、Docker Desktop をインストールして、そこに含まれる Docker Engine を利用するのが手軽です。
Windows や macOS ユーザーで Docker Desktop を利用するとなると有償版が必要になるが、Docker Engine だけ無償で使いたいという場合もあるでしょう。その場合は、Linux マシンを用意するのが一番手軽でしょう。Docker Engine は Docker Desktop と違って CPU の仮想化機能はなくても良いので、VirtualBox などの仮想マシンでも動作します。
そのため、どうしても Windows マシンで使いたいなら、Windows Subsystem for Linux の WSL2で動作する Ubuntu か Oracle VM VirtualBox で動作する Linux の仮想ゲストマシンを用意します。
macOS マシンで使いたい場合は、Oracle VM VirtualBox で動作する Linux の仮想ゲストマシンか Lima を用意します。
ちなみに、Linux KVM などで用意した Linux の仮想ゲストマシン上でも動作します。Linux でも Oracle VM VirtualBox で動作する Linux の仮想ゲストマシンを用意できるので、それを使っても良いです。
Oracle VM VirtualBox で動作する Linux の仮想ゲストマシンにした場合は、Linux、Windows、macSO 間で仮想マシンの移動をさせることもできるので、構築した環境のハードウェア依存度を下げたい時は、VirtualBox を使うという選択肢は検討すると良いでしょう。
とはいえ、素直に Linux マシンを用意するのが長期的な費用効果が一番高いと考えています。