最近では開発環境をローカルに構築することなく、Dockerをはじめとするコンテナ技術を使用する場面が増えています。コンテナ技術の利用により、環境の構築手間が大幅に軽減でき、さらにプログラミング言語やデータベースのバージョン管理も柔軟に行えるのが主な利点として挙げられます。 そんなコンテナ技術で有名なものとしてはDockerが存在しますが、最近では他にもさまざまなコンテナ技術や仮想化技術が登場しています。本記事では、これらの技術の相違点や特徴について紹介します。 コンテナはホストOSから独立した環境でアプリケーションを実行する技術です。 Dockerの場合を見てみると、下の図のようにホストOSの上にDockerが存在し、このDockerが様々なアプリケーションを「コンテナ」として管理しているとイメージできます。 具体的には、コンテナ内には必要なライブラリや依存関係がパッケージ化されており、こ