Docker Desktop
The #1 containerization software for developers and teams
Docker Desktop: The #1 Containerization Tool for Developers | Docker
便利なソフトウェアだと思いますが,必ずしも無料ではありません.
また,実行速度やCPUアーキテクチャの問題もあります.
Linux コンテナを MacOS や Windows にインストールした Docker Desktop で使用する場合,WSL2 *1 や Virtualization framework *2 などの仮想化技術を内部で使用することになります.様々な工夫により,仮想環境の実行速度は向上しています*3が,どんなに仮想化技術が進化しても,直接 Linux を実行する方が高速なはずです*4.また,実行速度は CPU 以外にも,メモリの帯域,I/O 速度,ネットワーク速度など多岐に渡る要素で構成されることにも注意が必要です.
2023 年現在,MacOS を使用する場合,CPU は ARM になっていると思います.ローカルで実行するだけならば問題となりませんが,クラウドにデプロイする用途で開発する場合,クラウドの実行環境も考慮する必要があります.多くは x64 なので,Docker イメージを作成する際にアーキテクチャを x64 にせざるを得ない場合があります *5.ARM, x64 両方に対応した Docker イメージを作成することも可能ですが,手間がかかります.
また,Docker Engine はサーバー・クライアント型のアプリケーションとして設計されているので,実行環境とクライアントを分離できます.Apache License なので無料で利用可能です.したがって,Docker Desktop を使って 1 台のパソコンですべてをまかなうのではなく,実行環境用に Linux マシンを別に 1 台用意して,それをクライアントから操作すればよいです.
具体的な設定については以下をご覧ください.
MacOSやWindowsからsshでDockerを操作する - みーのぺーじ
rootless Dockerを別のマシンのDocker CLIから使えるようにする - みーのぺーじ
Ubuntu Serverにrootless Dockerをインストールする - みーのぺーじ
このように,パソコンを 2 台使うメリットは大きいです.デメリットはパソコンの購入費用が追加で必要となることですが,500 ドルの安価なデスクトップパソコンの購入費用と,月 9 ドルの Team プランを比較すると,56 ヶ月 (約 5 年) でもとが取れる計算です.
個人で Docker Desktop を使って気軽に始めるならばよいですが,仕事で使うとなるとサーバー用に別途 1 台用意した方がメリットが大きいように思います.
参考
*1:Docker Desktop WSL 2 backend on Windows | Docker Docs
*2:Virtualization | Apple Developer Documentation
*3:https://www.publickey1.jp/blog/23/macosdocker-5docker_desktop_419.html
*4:同じスペックのハードウェアで適切に設定した場合の理想.Linux よりも高速に Linux を実行できる仮想化技術ができたら革命的だとは思いますが,実際は特定のハードウェアに対して Linux の対応が限定的などの理由により,逆転現象が部分的に存在する可能性はあります.
*5:https://cloud.google.com/compute/docs/instances/arm-on-compute?hl=ja など,ARM を部分的に利用可能ですが,ほとんどは x64 です.