前回の連載ではコンテナの基本と、Windowsコンテナ特有の制限や実行モードなどについて説明しました。今回は、コンテナベースのアプリの開発とデプロイの基本的なことを説明します。
ローカル開発環境でのアプリ開発
Dockerベースのコンテナアプリは、ベースOSイメージとミドルウェア(フレームワークなど)、アプリの複数のレイヤーで構築することができ、そのコンテナイメージは仮想マシンと比べて軽量であり、ホストのカーネルを共有するためコンテナの起動も高速という特徴があります。
コンテナを構成するいずれかのレイヤー(例えばOSレイヤー)にバグや脆弱性があった場合でも、OSへのパッチのインストールは不要で、新しいベースOSイメージでアプリを再構築するだけで、すばやく最新状態にできます。
Dockerベースのコンテナアプリのローカル開発環境としては、Docker Desktopが代表的です。
Docker Desktopは、Windows、Linux、macOSのマルチプラットフォームに対応していますが、Windows版のDocker Desktopは、Windows(Hyper-Vが必要)とLinux(Hyper-VまたはWSL2が必要)の両方の種類のコンテナを扱える唯一の存在です。