Docker & Kubernetes 入門 #1

Kenta Kosugi
3 min readSep 3, 2019

--

はじめに

このシリーズは Docker & Kubernetes を聞いたことはあるが触ったことはない、興味があって触ってみたいという人向けに記述しています。

Docker の前にJava EEコンテナ

昔昔 Java の世界では、Java EE の仕様に則って記載されているアプリケーションはどの Java EE アプリケーションサーバーでも動作できるという理想郷が語られていました。※Java EE は 2019 年現在 Jakarta EE に名前を変えています。

実際には Java EE サーバーごとの独自仕様(差別化)により、WebLogic サーバー向けに作ったアプリはそのまま WebSphere で動作する、なんてそんなことは稀でした。

Java EE Container

Dockerとは

時は流れて 2019 年、Docker で作成したアプリケーションは Docker さえインストールされていればどんな環境でも動作します。まるで Java EE の再来のようです。しかも、Dockerで作成したアプリケーションは Java EE のように Java に限りません。様々なプログラミング言語で記載されたものだって動かすことが可能なのです。

VM との比較

よく、Docker は VM と比較されます。VM はOSの層から仮想化されるため、もし、VM で動作させるアプリケーションを考えている場合は OS からインストールして GuestOS を作成する必要があります。

hypervisorの場合

対して Docker の場合、仮想化するのは主にミドルウェアから上の層になります。例えば、Node.js + JavaScript アプリケーションや、nginx + html ファイルなどです。ミドルウェアの部分はなくても構いません。ただのシェルスクリプトなどでも動作します。

Dockerの場合

Hypervisor のケースでは OS から起動するためそれなりに重いのですが、Docker はアプリケーションの層だけなので非常に軽量です。
CPU や Memory を大量に積み込み、IT 部門が LoB のデスクトップ環境をVDI(Virtual Desktop Infrastructure) として集積するようなケースがHypervisor のケースでは多いですが、Docker はそのようなケースは想定していません。あくまで一つのマシンで軽量のアプリケーションプロセスを動作させる目的で使用されます。

Dockerはどんなケースで利用できるか

Docker は上に載せるものが軽量なので、自分のラップトップで簡単に試すことができます。例えば、MySQL や Postgress の簡単な動作を確認したいときや、自作のアプリケーションをテストしたいときなどに利用できます。使ったら簡単に消すことができます。

次回

次回は Docker を実際に使用してみます。

--

--

Kenta Kosugi
Kenta Kosugi

Written by Kenta Kosugi

Javaアプリケーションサーバーの開発からCORBA製品のサポート、QA、証券外務員(第一種免許)、ストレージ屋、アーキテクト、SaaS屋と一貫性のない道を歩んでいます。Red Hatに復帰しました。

No responses yet