【一緒に学ぼう】Azure資格取得への道 - AZ-104試験対策 第6回

【一緒に学ぼう】Azure資格取得への道 - AZ-104試験対策 第6回:コンテナ技術を基礎から理解する この記事の内容 仮想化技術(ハイパーバイザー型VM)の仕組みとデメリットを整理します VMとコンテナの違いを、OS共有・プロセス分離の観点から解説します コンテナイメージのレイヤー構造とDockerfileを使ったビルドの仕組みを学びます Docker Desktopを使ったApache HTTP Serverコンテナの作成・起動手順を紹介します カスタムイメージの作成と、複数コンテナの同時起動によるスケーリングの概念を確認します はじめに 本シリーズ「AZ-104試験対策」も第6回となりました。これまでに、第1回では「Azure ADのオブジェクト」、第2回では「アクセス制御」、第3回では「ストレージの実装と管理」、第4回では「ARMテンプレート」、第5回では「仮想マシン」について学んできました。今回はその続きとして「コンテナ」について解説します。 本来はAzure上でのコンテナ関連サービス(Azure Container InstancesやAKSなど)を扱う予定でしたが、まずはコンテナそのものの仕組みを理解することを目的として進めます。仮想マシンに比べてコンテナに馴染みのない方も多いと思いますので、基礎から丁寧に整理していきましょう。 仮想化技術の復習 コンテナを理解するために、まず仮想化技術の基本構造を振り返ります。 物理サーバーにはCPU・メモリ・ストレージ・ネットワークが搭載されており、その上でプログラムやサービスを実行します。これを効率的に活用する仕組みが「仮想化」です。 物理サーバーの上に「ハイパーバイザー」という層を設けることで、複数の仮想マシン(VM)を作成できます。各VMは独立したCPU・メモリ・ストレージ・ネットワークを持ち、完全に分離された環境として動作します。それぞれにOSをインストールし、必要なランタイムやミドルウェアを導入してアプリケーションを動かす構成です。 この仕組みにより、リソースの柔軟な割り当てや分離が可能になります。たとえば、重い処理を行うVMには多くのリソースを、軽い処理のVMには少なめに設定することができます。 仮想化のデメリット 便利な仮想化技術にも、いくつかの課題があります。 起動に時間がかかる:VMはOSごとに立ち上げる必要があります オーバーヘッドが大きい:各VMにOSやランタイムが必要になります 管理負荷が高い:パッチ適用や設定をVM単位で行う必要があります 自動化が難しい:GUI操作が多く、コードによる一括管理がしづらい面があります 移行が容易ではない:ハイパーバイザー間で互換性の問題が発生することもあります このような背景から、より軽量で柔軟な仕組みとして「コンテナ技術」が登場しました。 コンテナ技術の仕組み コンテナは、仮想化とは異なるアプローチで環境分離を実現します。OS上に「コンテナランタイム」をインストールし、そのランタイムが各コンテナを管理します。このコンテナランタイムはユーザーモードで動作する通常のアプリケーションです。 コンテナはOSの機能を利用してプロセス間を分離します。各コンテナは独立したプロセスとして動作しますが、OSカーネルは共有されています。つまり、仮想マシンのように完全に独立したOSを持つわけではなく、分離のレベルが「ユーザーモード」で行われるのが特徴です。 さらに、コンテナはレイヤー構造のイメージとして管理されます。複数のコンテナが共通のランタイムを共有できるため、効率的な運用が可能です。 コンテナのメリット コンテナ技術の利点は以下の通りです。 ポータビリティが高い:対応OS上であれば同じように動作します 展開が高速:OSの起動が不要で、即座に起動できます コード管理が容易:スクリプトやコマンドで操作でき、自動化に最適です リソースコントロールが柔軟:CPUやメモリの割り当てを簡単に設定できます オーバーヘッドが小さい:OSを共有するため、仮想化より軽量に動作します これらの特徴により、開発・テスト・本番環境の構築が高速かつ効率的に行えるようになります。 コンテナイメージと実行の仕組み コンテナを動かすためには「コンテナイメージ」が必要です。イメージは「OS」「ランタイム」「アドオン」「アプリケーション」などの層で構成されます。 コンテナイメージとコンテナ本体は別物です。イメージをもとにコンテナが起動され、動作中の変更は別レイヤーに記録されます。これは仮想マシンの差分ディスク方式に似た考え方です。 イメージは「Dockerfile」というレシピを使って作成します。Dockerfileにはベースイメージや実行するコマンド、追加するファイルなどを記述し、docker build コマンドでビルドすると新しいイメージが生成されます。 実演:Webサーバーコンテナを作成してみる ここでは、Windows環境にDocker Desktopを導入し、Apache HTTP Serverコンテナを作成する手順を紹介します。 1. イメージの取得 docker pull httpd Apacheの公式イメージをダウンロードします。レイヤー単位で取得されることが確認できます。 2. イメージの確認 docker images ダウンロード済みイメージの一覧を表示します。 3. コンテナの起動 docker run -it httpd bash コンテナを起動し、内部の環境にアクセスします。独立したプロセス空間で動作していることが確認できます。 ...

November 16, 2025 · 1 min · 胡田昌彦