お問い合わせはこちら

【基本】コンテナや類似する技術の種類と違いをわかりやすく解説します!

公開
更新

一口に「コンテナ」と言っても、分類は意外に複雑です。誕生してから類似する技術の種類が増えているからです。本記事では、何がどう違うか理解しやすいようにまとめています。ぜひ基本をあらためて理解し用途に合ったものを選びましょう。

コンテナ技術
画像はDocker公式サイトより引用

種類と違いの前にコンテナそのものを理解する!

コンテナの種類と違いを理解するのは、なかなかできることではありません。出来上がったひとつの製品ではなく、課題を解決する考え方や分野だからです。その実現方法として複数開発され、それぞれが別々に発展してきました。「コンテナ」を技術として知ることの大切さがここにあると考えます。

技術としてコンテナを考えることについて、カゴヤのサーバー研究室では以下の記事でまとめています。

【入門】コンテナ技術とは?基本をわかりやすく解説します

【入門】コンテナ技術とは?基本をわかりやすく解説します

日常生活でコンテナは知っていても、IT業界のそれとどう関連するのかわからない方に向けに、この記事であらためて解説しています。もともとコンテナが使われてきたのは貿易業界で、そこでの意味もご紹介しています。これで、なぜコンテナが「技術」として大切かご理解いただけると考えています。キーワードは「整理整頓」と「効率化」です。 貿易業界の「コンテナ」とは? まずは貿易業界で使われている「コンテナ」についてご…

そもそもコンテナとは?

何かの入れ物を指す「コンテナ」は突然現れたわけではありません。「仮想化」がその原型の一つです。「仮想化」とは物理的な1台のサーバー機器を、あたかも複数の機器があるように(仮想的に)分割し、利用できるようにした技術です。管理の省力化や有限な資源の有効活用などを目的に、仮想化をさらに改善し進化させた結果が「コンテナ」と言えるでしょう。

仮想化についてカゴヤのサーバー研究室では、以下の記事で詳しく解説しています。

【超入門】「仮想マシン」「ゲストOS」「ホストOS」を図解でわかりやすく解説します

【超入門】「仮想マシン」「ゲストOS」「ホストOS」を図解でわかりやすく解説します

「仮想化」について調べると、「仮想マシン」や「ゲストOS」、「ホストOS」など多くの専門用語も一緒に出てきます。そのため余計にわからなくなることはありませんか。この記事ではそれらの用語をあらためて図解し、わかりやすく解説しています。「仮想化」技術にはいくつかの種類があり、進化しています。より新しく利用しやすい「HCI」という新しいサービスについても紹介しています。 仮想化とは?仮想マシンがなぜ必要…

いろいろな種類がある!

最初から、コンテナの種類や違いを個別に完璧に理解することは確かに理想です。まずは概要を把握することから始めることをおすすめします。

コンテナ自体は課題を解決する考え方や分野のため、さまざまな実現方法が開発されてきました。何をどこで使うかが、種類と違いを理解する際のポイントと考えます。「何を」は技術名で、例えば「Docker」や類似する技術です。一方「どこで」とは、どのOSで利用するかです。これらは世に出たらずっとそのままではありません。他の技術との組み合わさり、改良されることもあります。この先も次々と新しい「入れ物」が誕生したり、全く別の技術に進化することでしょう。

【コンテナの種類と違い(1)】発展段階での違い

Dockerと仮想化

(画像はDocker公式サイトより引用)
Docker仮想化
概要・アプリケーションが利用できる環境をはやく、独立して安全に用意できる
・ゲストOSが不要のため軽量
独立した仮想的な機器を作成するため、より高性能なサーバー機器が必要
基本的な構造ホストOS – Docker Engine – アプリケーションホストOS – ハイパーバイザー – 仮想マシン(ゲストOS・アプリケーション)
搭載できるOSLinux、macOS、Windows(注1)Linux、macOS、Windows
環境を構築する時間比較的短い比較的長い
画面操作がGUIで可能か
メリットアプリケーションの独立性が高まり比較的安全従来の知識である程度操作ができる
デメリット最初に専門知識の習得が必要・環境構築に時間がかかる
・比較的動作が遅い
備考・Docker コンテナと呼ばれることもある(注2)
管理方法には「Kubernetes」がある(注3)

(注1)Docker Desktop
https://www.docker.com/products/docker-desktop/

(注2)Docker 概要
https://docs.docker.jp/engine/understanding-docker.html

(注3)Kubernetesとは?仕組みと構造をわかりやすく解説(カゴヤのサーバー研究室) https://www.kagoya.jp/howto/cloud/container/kubernetes/

アプリケーションコンテナとシステムコンテナ

アプリケーションコンテナシステムコンテナ
概要アプリケーションを独立して使用できるアプリケーションコンテナと仮想化の両方の特徴をもつ
代表的な名称DockerなどLXC(Linuxコンテナ)
備考参考サイト
Container and virtualization tools

【コンテナの種類と違い(2)】 搭載するOSでの違い

コンテナはふだん使用しているOSで導入し利用可能です。各公式ページなどで公開されている情報にもとづいてインストールします。

いろいろなOSでDocker Desktopを動かす!

公式ページによれば、「Docker Desktop」をインストールすることで、「コンテナ化したアプリケーションとマイクロサービスの構築と共有が簡単」になります。さらにKubernetes、 Docker EngineやDocker Composeなどのツールも利用できるため、管理がはかどります。

これまではMac用とWindows用が公開されてきました。公式サイトによれば、2022年5月からLinuxでも動かすことができるようになりました。

(画像はDocker公式サイトより引用)

(注)Docker Desktop on Linuxの利用には、Gnomeまたは KDEのデスクトップ環境が整っていることが前提です。詳細はこちらの公式ページをご確認ください。

それぞれの導入方法は、以下の公式ページで解説されています。

Docker Desktop for Machttps://docs.docker.jp/docker-for-mac/install.html
Docker Desktop for Windowshttps://docs.docker.jp/docker-for-windows/install.html
Docker Desktop for Linuxhttps://docs.docker.com/desktop/linux/

 LXCとLXD(Linux)

LinuxではLXCやLXDなどのコンテナ技術が使われています。2008年頃に登場したLXCは、Linux Containers(Linuxコンテナ)の略です。このLXCに、さらに利用しやすくする機能が付け加えられました。それが2015年に生まれたLXDです。

【参考サイト】
What is LXD?
https://linuxcontainers.org/lxd/introduction/

Windowsで動かすWSL2

Windowsでは、最近「WSL」というLinuxを動かす機能が注目されています。「WSL」とはWindows Subsystem for Linuxの略で、2022年5月時点で最新版は「WSL2」です。Windows 11が発表されてからはより使いやすくなっています。

カゴヤのサーバー研究室では、以下の記事でWSL2について詳しく解説しています。

WindowsでWSL2を使って「完全なLinux」環境を作ろう!

WindowsでWSL2を使って「完全なLinux」環境を作ろう!

WSLとは、Windows上でLinuxを動作させるための実行環境です。新しいバージョンである「WSL2」ではWindows上で「完全なLinux」が動かせるようになり、できることが大幅に増えました。この記事ではWSL(WSL2)とは何かや、WSL1・WSL2の違い、WSL2を使ってLinux環境を構築する方法について解説します。 Windows上でLinuxを動かせる「WSL」とは? 「WSL(…

また以下の記事にて、「WSL1」ではできなかったDockerの導入を、「WSL2」で実現する方法を説明しています。参考にしてみてはいかがでしょうか。

Windows+WSL2でDocker環境を用意しよう

Windows+WSL2でDocker環境を用意しよう

Web開発の現場をはじめとして、Dockerが使われる機会が増えています。手軽に使えるDockerのテスト環境・開発環境を調達したい、と考えている方は多いでしょう。 Windowsでは「WSL2」の登場により、Docker環境を簡単に確保できるようになりました。この記事では、WSL2とは何かといった概要と、Windows+WSL2でDocker環境を用意する方法について紹介します。 WSLとは W…

【コンテナの種類と違い(3)】 Docker互換の事例

その代表が「Podman」というオープンソースのプロジェクトです。Red Hat社が中心となって開発を進めています。Docker互換のコンテナエンジンといわれ、Dockerの代替なる可能性があると考えます。標準規格のもとでは、コマンドのdockerをpodmanに変えることでほぼ動作するためです。

XaaSとしてコンテナを理解する!

XaaS(注1)の一つとして、CaaS(カース、Containers as a Service)という用語もあります。コンテナの技術でクラウドサービスを提供する方法です。

CaaSの位置づけは、IaaS(Infrastructure as a Service)とPaaS(Platform as a Service)の間と言われています。ただしコンテナ技術で動いていることから、従来の仮想化を念頭にした分類方法では、必ずしも適当ではない可能性があります。(注2)

(注1)XaaS(X as a Service)で「X」の部分にアルファベットを入れることにより、さまざまなクラウドサービスを表現する際に使われています。「IaaS」「PaaS」「SaaS」などが有名です。

(注2)【参考サイト】Containers as a Service (CaaS)
https://www.techtarget.com/searchitoperations/definition/Containers-as-a-Service-CaaS

まとめ

種類と違いが複雑になってきたコンテナは、今後ますます発展していくでしょう。決して「Linux」- 「コンテナ」 – 「Docker」のような、1つの組み合わせのみで存在しているわけではありません。まずは基本的な種類や違い把握することが、利用目的に合ったものを選ぶ近道と考えます。

30日間無料で試せる

cloud tap

コンテナ管理をこれから始めたいお客様に最適な、RancherでKubernetesを簡単に管理できるコンテナサービスと、サーバースペック 95パターン+ディスク容量 10パターンから選択できるクラウドサーバーを提供する国産クラウドプラットフォームです。