第3回 「ファイルシステムの分離」とは? chrootで試して理解しよう:古賀政純の「攻めのITのためのDocker塾」
なぜ企業がDockerに着目するのか、今後の“攻めのIT”に必要と言われているのか。情シスにその知識があると“強くなる”はずです。今回は簡易テスト環境で「chrootによるファイルシステムの分離」を体験する方法を紹介します。
<実践>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実践入門」などがある。趣味はレーシングカートとビリヤード
関連記事
- 第2回 chroot/Dockerを手元のWindowsで手軽に試す方法
なぜ企業がDockerに着目するのか、今後の“攻めのIT”に必要と言われているのか。今回はこれをふまえ、簡単にざっくりと体験学習してみませんか。今回は準備編として、CentOS 7.xをお手元のWindows PCで手軽に試す方法を簡単に紹介します。 - ゲームもレースもビッグデータ分析で上手くなる!?
企業の“ビッグデータ活用”への期待度は高い。しかし、現実には「ビッグデータは持っているが活用はできていない」という企業がほとんどだろう。ここでは、思いがけない方法でビッグデータ分析を活用している事例などを紹介する。 - クラウドエバンジェリスト4者対談:「エンタープライズクラウド」は、どこへ向かうのか?
エンタープライズ領域におけるクラウド利用がいよいよ本格的に普及段階に入った。その理由と背景は何か。自社は、導入をどう考えればよいか。主要ベンダーのクラウド関連エバンジェリストに、現状とその未来を分析してもらった。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.