なぜ企業がDockerに着目するのか、今後の“攻めのIT”に必要と言われているのか。情シスにその知識があると“強くなる”はずです。今回は簡易テスト環境で「chrootによるファイルシステムの分離」を体験する方法を紹介します。
今回は、前回紹介したCentOS 7.xの簡易テスト環境を使い、Dockerがない環境でファイルシステムの分離を体験する方法を紹介します。
改めて、Dockerがない環境でchrootだけを試すには、フリーLinux(CentOS 7.1など)を用意すれば簡単に体験できます。もしまだでしたら前回紹介した「CentOS 7.xを手元のWindows PCで手軽に試す方法」をご覧いただき、テスト環境を用意してください。
ともあれ、やってみると「これだけのこと?」と思うかもしれません。しかし、これが実現できることは、Dockerをこれから実践することにおいて非常に大きな意味を持ちます。ぜひ「ファイルシステムの分離」を理解していただきたいのです。
ホストOS(監獄の看守側)であるCentOS 7.1にrootアカウントでログインします。看守はホストOS上で、OSの再起動などのさまざまな特権が与えられていることをここで確認しておきます。
ホスト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/
ホストOS上で、/home/koga/MyDocumentディレクトリ配下の様子を確認してみます。
# ls -F /home/koga/MyDocument/ bin@ dev/ etc/ lib64@ root/ sbin@ tmp/ usr/
ホスト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
監獄から出て、ホスト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実践入門」などがある。趣味はレーシングカートとビリヤード
Copyright © ITmedia, Inc. All Rights Reserved.