コンテナって聞くと IBM であれば誰しも OpenShift!OpenShift!! っていうかもしれませんが、ちょっと待って下さいませ。
OpenShift はもちろんそうですが、その前にそもそもコンテナとはから簡単に理解してからの方がより OpenShift の良さもわかるかと思いますので、まずはコンテナから理解をしていくことから始めましょう!
それでは、まずは「コンテナ技術って何?」です!
コンテナ技術はそもそも新しい技術ではなく、古くから利用されている技術で、エンタープライズで最初に利用され始めたのが 2004 年に発表された Solaris 10 ですね。

2008 年位に IBM が LinuX Containers(LXC)を発表し、これが、Cgroup と Namespace を組み込んだ最初の Linux のコンテナエンジンです。まさに現在のコンテナの原点なんですよ!
コンテナはまさしく船の上に載っているコンテナボックスをイメージしていただくのが簡単で、1 つの船は全てのコンテナボックスを収容していて、それぞれのコンテナボックスは独立している、つまり 1 つの OS の上で複数のプロセスを独立してライブラリやツールを利用することができるものです。
コンテナ技術を動作させる docker のイラストがまさしくですね!

ここで、従来のサーバー仮想化技術とコンテナ技術を比べてみましょう。
従来のサーバー仮想化技術は
「CPU やメモリなどのハードウェアのリソースをハイパーバイザーというソフトウェアの力で抽象化したもの」で、
コンテナ技術は
「コンテナランタイム(コンテナを動かすエンジン)を通して、ホスト OS のカーネルを共有することで CPU やメモリなどのリソースを隔離し、仮想的な空間を作り出すもの」で、
どちらも似ているようだが全く別のものとなります。

何が違うかと言いますと、コンテナは、仮想マシンと違って OS を持たないものなのですよ。
これってアプリケーション開発者にとっては嬉しいものですよね!?

簡単ながらコンテナ技術の歴史とコンテナ技術のイメージ、およびサーバー仮想化技術との違いから仮想マシンとの違いを理解していただけたかと思います。次はもう少し深く中を見ていきましょう!

docker とか kubernetes って何?
コンテナ技術を動作させる docker のイラストは何となくわかったけど、そもそも docker って何なのでしょうか。 docker は、コンテナ技術を利用して、従来の方法よりも迅速にアプリケーションを構築、テスト、デプロイできるようになっており、ほとんどの開発者が最初は自分の PC で利用しているものです。

大規模システムを考えた場合、docker で作成したアプリケーションを複数利用することになりますよね?その際に利用するのが kubernetes となります。なのでどちらかを選ぶというものではなく、どちらも利用するものですね。

簡単ながら docker と kubernetes との違いを理解していただけたかと思います。

さて、次の内容は何にしましょうかねぇ。
以下のような内容を考えております。
・コンテナ利用時のメリット・デメリットは?
・そのそもコンテナってどういうところで利用されているの?
・コンテナアプリってどうやって作成するの?
・コンテナ基盤ってどうすれば良いの?
コメント欄にご要望・ご意見をいただけましたら、ご要望の多いものから載せていこうと思っております!
#StorageforContainers