Dockerのキモの一つ!?イメージとコンテナについて

Dockerを使おうかな、と思った時によく分からなくなるのが「イメージ」と「コンテナ」という言葉。
この2つを何となくでも理解しておかないと、実際に使っていても意味が分からなくなります。
ここではすごく噛み砕いて説明してみたいと思います。

まずは「コンテナ」技術からカンタンに

まずは「コンテナ(container)」から簡単に説明します。
実はLinuxなどサーバの世界ではコンテナ技術というのは昔からあります。
私も使ったことがある「OpenVZ」なんて、見事にコンテナでしたし、lxc(だっけ?)もコンテナです。
コンテナとは、1台のサーバ上で複数のサーバ環境をそれぞれ独立して動作させる技術のことです。いわゆる「仮想化技術」の一つです。
しかし、物理的にサーバ内にスペースを切り出して、その中にサーバOSを丸ごとインストールして動かすような「完全仮想化」とは異なり、メインのサーバのカーネルを使いつつ、サーバ内の領域を分割してそれぞれ動かしています。
そして、Dockerもこの「コンテナ技術」を使った仮想化システムの一つです。

Dockerにおける「イメージ」とは?

Dockerを使う上で切り離せないのが「イメージ」という考え方です。
これは何か?というと、Dockerコンテナの「元」「ひな形」と思ってもらえると分かりやすいかもしれません。
Dockerコンテナのベースとなるものが「イメージ」です。
例えば、Dockerでapacheが動作する「コンテナ」を立ち上げようと思った場合、まずはOS+apacheの入った「イメージ」が必要になります。
そのイメージをベースにして、コンテナを生成し、起動します。
つまり、WordPressがインストールされている「ベースとなるイメージ」を1つ作っておけば、「コンテナ」はその「WordPressイメージ」をベースにいくつでも立ち上げることが出来ます。

「イメージ」と「コンテナ」の関係

「イメージ」と「コンテナ」の関係について、もう少し掘り下げると、「コンテナ」には「イメージ」との差分が記録されていきます。
つまり、「コンテナ」をいくつも立ち上げた場合でも、それらはあくまで「イメージ」の差分ファイルが記録されているだけなので、ファイル容量をさほど喰いません。
また、差分の生成だけで済むので、コンテナの生成にはそれほど時間はかかりません。

「イメージ」は”Dockerfile”にて生成可能

「イメージ」はどうやって作るか?というと、”Dockerfile”という設定ファイルから生成することが出来ます。
Dockerfileに、自分が作りたい「イメージ」に合わせた処理を書き込んでいって実行するとDockerイメージが生成されます。
これ便利!かなり便利!
なので、テスト環境を共有したいときなどにはこのDockerfileを相手に送れば、相手の環境でも簡単にテスト環境のイメージが生成できます。

他者が作った「イメージ」を使うことも可能

そして、Dockerの大きな特徴の一つが、「イメージの共有」です。
Docker社が提供する「Docker Hub」というサービスでは、いろいろな人が作ったDockerイメージが登録されています。
この中にはWordPressのイメージもたくさん登録されていて、自分の用途に合ったものがあれば、簡単にDockerイメージを自分の環境に作ることが可能です。
screencapture-hub-docker-com-search-1459927845259

使い方や仕組みを覚えれば覚えるほど有用性が高まるのがDocker

Dockerは使い方や仕組みを覚えれば覚えるほど、有用性が高まる印象です。
後は本番環境で使った時にどれくらい「動くのか」でしょうか。
基礎を作るために読んだのですが、今、読んだ方がシックリ来ます・・・
[tmkm-amazon asin=’4774174416′][/tmkm-amazon]

Share this post