コンテナと仮想マシンの違い
仮想マシンはOS全体を仮想化するため、その分重く起動にも時間がかかります。コンテナはホストマシンのカーネルを共有し、アプリケーション層だけを隔離するため、数秒で起動でき使用するリソースもはるかに少なく済みます。これが現代のアプリケーション配布の標準的な方法になった理由です。
実際のワークフローの中でのDockerの位置づけ
ローカルで1つのコンテナを動かすだけでなく、実際のチームではイメージを一度ビルドしてレジストリにプッシュし、実行するすべてのサーバーでまったく同じイメージをプルして使うのが一般的です。これにより、各マシンで依存関係や設定が正しく整っているかどうかを毎回気にする必要がなくなります。
よくある質問
Docker Desktopは必須ですか、コマンドラインだけでも十分ですか?
Docker DesktopはDockerエンジンとGUIをまとめたもので、WindowsやMacで最も手軽に始められる方法です。Linuxでは、デスクトップアプリを使わずコマンドラインからDocker Engineだけを直接インストールする人も多くいます。
Dockerのコンテナは仮想マシンと同じものですか?
いいえ、似た課題を解決していますが仕組みは異なります。コンテナはホストのOSカーネルを共有し、別のOSをまるごと仮想化しない分はるかに軽量で、そのため仮想マシンに比べてほぼ瞬時に起動できます。