第3回 「ファイルシステムの分離」とは? chrootで試して理解しよう古賀政純の「攻めのITのためのDocker塾」

なぜ企業がDockerに着目するのか、今後の“攻めのIT”に必要と言われているのか。情シスにその知識があると“強くなる”はずです。今回は簡易テスト環境で「chrootによるファイルシステムの分離」を体験する方法を紹介します。

» 2015年07月08日 08時00分 公開

<実践>Dockerのない環境で、chrootによるファイルシステムの分離を体験しましょう

 今回は、前回紹介したCentOS 7.xの簡易テスト環境を使い、Dockerがない環境でファイルシステムの分離を体験する方法を紹介します。

 改めて、Dockerがない環境でchrootだけを試すには、フリーLinux(CentOS 7.1など)を用意すれば簡単に体験できます。もしまだでしたら前回紹介した「CentOS 7.xを手元のWindows PCで手軽に試す方法」をご覧いただき、テスト環境を用意してください。

 ともあれ、やってみると「これだけのこと?」と思うかもしれません。しかし、これが実現できることは、Dockerをこれから実践することにおいて非常に大きな意味を持ちます。ぜひ「ファイルシステムの分離」を理解していただきたいのです。

ステップ1:看守の作業 〜ホストOSにログイン〜

 ホストOS(監獄の看守側)であるCentOS 7.1にrootアカウントでログインします。看守はホストOS上で、OSの再起動などのさまざまな特権が与えられていることをここで確認しておきます。

ステップ2:準備 〜監獄となるディレクトリにファイルをコピー〜

 ホストOS上で、監獄で作業するために必要となるファイルを/home/koga/MyDocumentにコピーします(*kogaの部分は設定したユーザー名に適宜置き換えて下さい/以下同)。

# mkdir -p /home/koga/MyDocument/usr
# cp -a /usr/lib64 /usr/libexec /usr/bin /usr/sbin /home/koga/MyDocument/usr/
# cp -a /root /lib64 /etc /dev /tmp /bin /sbin /home/koga/MyDocument/
監獄となるディレクトリにファイルをコピー

ステップ3:コピー済みの環境を確認

 ホストOS上で、/home/koga/MyDocumentディレクトリ配下の様子を確認してみます。

# ls -F /home/koga/MyDocument/
bin@  dev/  etc/  lib64@  root/  sbin@  tmp/  usr/
コピー済みの環境を確認

ステップ4:入獄 〜監獄に入り、何かファイルを作成〜

 ホストOSでchrootを実行し、/home/koga/MyDocumentをルートディレクトリに遷移できるか確認します。さらに監獄内の/rootにファイル「testfile」を作成してみます。

# chroot /home/koga/MyDocument
# pwd
/
# ls -F /
bin@  dev/  etc/  lib64@  root/  sbin@  tmp/  usr/
# touch /root/testfile
監獄に入り、何かファイルを作成

ステップ5:出獄 〜監獄から出てファイルを確認〜

 監獄から出て、ホストOS上から作成したファイルがどこにあるか確認します。

# exit
# ls /root/testfile
ls: /root/testfile にアクセスできません: そのようなファイルやディレクトリはありません
# ls /home/koga/MyDocument/root/testfile
/home/koga/MyDocument/root/testfile
監獄から出てファイルを確認

 監獄内の/rootディレクトリで作成したtestfile(ステップ4)は、ホストOS上では/home/koga/MyDocument/rootディレクトリにあることが分かります(ステップ5)。ステップ2でさまざまなファイルをコピーしていますが、このコピーするファイルを絞り込むことで、監獄内での行為を制限することができます。

 ホストOS環境と監獄の環境で行える行為の差を確認し、この差がどのように応用できるか、その意味を考えいただくのがポイントです。監獄にいる場合はホストOSの環境を破壊できないことを確認してみるのもよいでしょう。

 ここまで「chrootによるファイルシステムの分離」をざっくりと紹介しました。本題となるDockerでもファイルシステムの分離が使われています。ほかにもさまざまな技術がDockerに応用されていますが、基本的な技術を知っておくと応用が利きます。

(第4回はこちら

 次回は2000年以降に登場した技術をもとに、さらにDockerのキモに近づいていきます。お楽しみに。



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

日本ヒューレット・パッカード株式会社 オープンソース・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.

注目のテーマ