🖥️ HW・SW 第5章-2節

コンテナ技術

コンテナ技術

コンテナは仮想マシン(VM)に代わる軽量な仮想化技術です。中小企業の情シスが直接コンテナを運用する場面はまだ限られますが、ベンダーやSIerとの会話で登場する機会が増えているため、基礎知識を押さえておきましょう。

コンテナとVMの違い

項目仮想マシン(VM)コンテナ
仮想化対象ハードウェア全体を仮想化OS(カーネル)を共有し、アプリ環境だけを分離
起動時間数分数秒
サイズ数GB〜数十GB数十MB〜数百MB
リソース効率OSごとにメモリ・CPU消費カーネル共有で効率的
分離レベル完全分離(高セキュリティ)プロセスレベル分離(やや低い)

Docker基礎

Dockerはコンテナ技術の事実上の標準です。基本的な概念を理解しましょう。

  • Dockerイメージ: アプリケーションとその実行環境をパッケージ化したテンプレート。Docker Hubから公式イメージを取得可能
  • Dockerコンテナ: イメージから起動した実行中のインスタンス。停止・削除・再作成が容易
  • Dockerfile: イメージの構築手順を記述したファイル。インフラをコードで管理(Infrastructure as Code)
  • Docker Compose: 複数コンテナの構成を定義するツール。Webアプリ + DB + キャッシュのような複合構成を一括管理

Kubernetes概要

Kubernetes(K8s)は大量のコンテナを管理するオーケストレーションツールです。

  • コンテナの自動デプロイ・スケーリング・障害復旧を自動化
  • Google発のOSSで、現在はCNCF(Cloud Native Computing Foundation)が管理
  • AKS(Azure)、EKS(AWS)、GKE(GCP)としてクラウドサービスでも提供

正直なところ、中小企業が自前でKubernetesクラスターを運用するのはオーバースペックです。使う場面があるとすれば、クラウドのマネージドKubernetesサービス上で動くSaaS製品を採用するケースでしょう。

中小企業でのコンテナ活用場面

ひとり情シスがコンテナを活用できる実践的な場面を紹介します。

  1. 検証環境の迅速構築: 新しいソフトウェアの評価をコンテナで素早く試す。不要になったら削除するだけ
  2. 社内ツールの運用: Gitea(Gitサーバー)、Portainer(Docker管理UI)、Redmine等をDocker Composeで簡単にデプロイ
  3. 開発支援: 開発チームがいる場合、開発環境の統一にDockerは非常に有効
  4. バックアップ/移行の容易さ: コンテナ構成がコードで定義されているため、別サーバーへの移行が容易

まずはDockerをインストールして、公式チュートリアルで基本操作を学ぶところから始めましょう。docker run、docker ps、docker stop、docker compose up の4コマンドを覚えるだけで、かなりの場面で活用できます。