第1回 Dockerと「昭和54年」の深〜い関係古賀政純の「攻めのITのためのDocker塾」

いま、欧米IT業界で特にホットな話題=「Docker」。これを正しく理解すると、これからの情シスに求められる“攻めのIT”の強い武器になる。そう強く提言するエバンジェリストが「Docker」の基本と具体的Tipsを解説していきます。

» 2015年06月10日 08時00分 公開

 いま、欧米のIT業界で最もホットな話題の1つが「Docker(ドッカー)」です。

 「ウチの技術部門がポスト仮想化とか言っているけど、本当なのか?」

 「Dockerって、コンテナを船に積む人?」

photo 「Docker」はご存じだろうか。なぜ注目されているか、なぜ今後の“攻めのIT”に効くのか、今後複数回に渡って紹介していく

 Dockerとは、一体何者なのでしょう。そして、なぜ企業がDockerに着目するのでしょう。19年以上オープンソースを手掛けているオープンソース・Linuxテクノロジーエバンジェリストの古賀政純が「Dockerって何?」を、“攻め”たいと思っているIT部門/情シスの方に向けて解説していきます。

 本連載の目的は、Dockerに対する漠然としたイメージや誤解を払しょくし、正しくDockerを理解することにあります。このことは、システムの保守だけではないこれからの情シスに求められる“攻めのIT”の強い武器になると信じています。

 まずはDockerとは何? ですよね。それには、Docker誕生以前の基礎技術の概要をある程度知っておくと理解が深まります。第1回は、古きよき昭和の時代にさかのぼり、Dockerが生まれるまでの道のりを説明します。

それは昭和54年のこと

 時は、まだインターネットもなかった昭和54年(1979年)にさかのぼります。その頃米国で、とある小さなコンピュータプログラムが産声をあげます。「chroot(チェンジルート)」です。

 chrootは、「Version 7」と呼ばれるUNIXの開発の過程で生まれました。その後、viエディタの開発者でもあるビル・ジョイ(William Nelson Joy)氏が、1982年にBSD(ビーエスディー)と呼ぶOSにchrootを実装しました。このchrootは画期的なもので、一部のディレクトリ配下をあたかもルートディレクトリ(頂上となる根のディレクトリ)に見せることができるというものでした。

 chrootの動きを簡単に説明すると以下のようになります。

chrootの動き

  • あるディレクトリ(例えば /home/koga/MyDocument)に対してchrootを実行する
  • /home/koga/MyDocument以下が、あたかもOSのルートディレクトリのように見える
  • /home/koga/MyDocumentよりも上位にあるファイルやディレクトリが見えなくなる
  • exitを実行すると、以前の状態に戻る

 この時、ユーザー側からは/home/koga/MyDocument以下に閉じ込められているように見えます。このためchrootは「chroot監獄」とも呼ばれていました。

 このchroot監獄のすごいところは、例えば本番環境と同じファイルやディレクトリ構成を、/home/koga/MyDocument配下へコピーしてchrootすると、本番環境に影響を与えずに別の新たなルートディレクトリ(=根)配下で本番環境と同じような構成でソフトウェア開発やファイルの操作を行えることです。

 一般的にアプリなどの稼働テストにおいて、実際の本番環境のファイルなどを直接作成、変更、削除するのは、非常に危険です。chroot監獄は、このような本番環境で試すと危険をともなう場合と比べ、ソフトウェアの開発やテスト環境を安全に行うことができます。当時は非力な計算機を使って、BSDなどのUNIX向けにさまざまなソフトウェアの開発が研究機関において行われていました。このような「監獄」の考え方が出現したのは、ソフトウェア開発者が1台のマシンで本番環境をシミュレートして、効率的にかつ安定的に開発を行いたいというニーズが背景にあったためです。

photo 本番機と開発機を2重に持たず、本番機で開発するのは非常に危険。そこで、本番用のファイルシステムの一部を分離(隔離)するという考えが生まれた

 chroot監獄は開発の場面だけでなく、システムファイルの破損や、操作ミスなどで誤ってファイルを削除してしまい、OSが起動不能になった場合に、インストールメディアのレスキューモードを使ってOSを復旧させるシーンにおいても使われています。

 具体的には、インストールメディアで対象となるマシンを起動後、破損したOSのルートディレクトリを適当な名前のディレクトリ(/mnt/sysimageなど)にマウントすることに成功すれば、そのディレクトリにchrootを実行することで、破損したOSのルートディレクトリに遷移できます。これにより、起動不能だったOSのコマンド群を使えるようになり、復旧作業を行うことができます。

photo レスキューモードにおけるchrootの応用例。最新OSのCentOS 7.1のレスキューモードでもchrootが使われている

 このように、chroot監獄は運用保守面でも威力を発揮するものです。参考として、最新(2015年現在)のフリーLinuxであるCentOS 7.1のレスキューモードでchrootが使われている画面を右図で示しておきます。

 また、セキュリティの面においても「ハニーポット(蜜の壺/おとりサーバ)」と呼ぶクラッカー対策にchrootが利用されます。現在(2015年)では、chrootを使ったハニーポットに代わる新しいセキュリティ対策の仕組みがいろいろと研究されていますが、基本的にはchrootの考え方を踏襲しており、2015年現在でもフリーOSなどで利用されています。


photo chrootの応用例。chrootのファイルシステムの分離機能はソフトウェアの開発だけでなく、さまざまな分野で応用されている

(続く)

 次回は、chrootで「ファイルシステムの分離」を体験することでDockerへの理解と興味を深めていきます。

(第2回はこちら

古賀政純(こが・まさずみ)

日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリスト。兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国HPからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は日本HPにて、Linux、FreeBSD、Hadoopなどのサーバー基盤のプリセールスSE、文書執筆を担当。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード



関連キーワード

Docker | CentOS | 攻めの経営 | Linux


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ