IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第63回 Docker専用のLinux - RHEL Atomic Hostが登場!(パート4) (中井悦司) 2015年3月

はじめに

 先日、Red Hat Entprise Linux Atomic Host(RHEL Atomic Host)が正式公開されて、プレスリリースも発表されました。本コラムでは、これまでにもベータ版の情報を元にRHEL Atomic Hostを紹介してきましたが、正式公開版ではさらなる機能拡張が行われていることが分かりました。

 今回は、正式公開版の追加機能の中でも、特に興味深い「SPC(Super Privileged Container)」について解説します。

Super Privileged Containerとは?

 RHEL Atomic Hostは、Dockerの実行環境に特化されているため、Docker以外のアプリケーションやツールをインストールすることができません。必要なアプリケーションは、Dockerのコンテナとして実行すればいいわけなのですが、それだけでは困ることもあります。たとえば、lsof、tcpdumpなど、ホストの状態を確認するコマンドを実行したくても、これらのコマンドを提供するパッケージの追加ができません。あるいは、ホストの状態を監視する監視エージェントを導入したくなることもあるでしょう。

 このような場合は、必要なコマンドや監視エージェントをSPC(Super Privileged Container)と呼ばれる特別なコンテナで実行します。普通のコンテナは、ホストからは環境が隔離されていますが、SPCは、ファイルシステムの内容がコンテナイメージから提供される他は、ホストの環境がそのまま見える状態になります。言い換えると、「単なるchroot環境」としてコンテナを起動するものになります。

 具体的には、次のようなオプションでコンテナを起動します。

# docker run -it --name mytools \
  --privileged --ipc=host --net=host --pid=host \
  -v /run:/run -v /var/log:/var/log -v /etc/localtime:/etc/localtime \
  -v /:/host \
  rhel7/tools /bin/bash

 多数のオプションで驚くかも知れませんが、ポイントは、2行目の「--privilged」から始まる一連のオプションです。これらのオプションにより、コンテナ内から、ホストのネットワーク環境やプロセステーブルがそのまま見えるようになります。ここでは、「rhel7/tools」というイメージからbashを起動していますが、このイメージにlsof、tcpdumpなどのコマンドを導入しておけば、起動したbashから、これらのコマンドでホストの状態を確認できます。

 ホストのディレクトリーについては、-vオプションでコンテナ内のディレクトリーにマッピングしています。この例では、コンテナ内の「/var/log」からホストの「/var/log」がそのまま確認できます。コンテナ内の「/host」からは、ホストのルートディレクトリー「/」にアクセスすることも可能です。

 SPCについては、その考案者である、Red HatのDan Walshが詳細な解説記事を書いていますので、そちらも参考にするとよいでしょう(*1)。SPC以外の追加機能については、筆者のBlog記事も参考にしてください(*2)。

次回予告

 少し余談になりますが、Dan Walshは、SELinuxの開発者としても有名です。日本では、SELinuxを無効化する際の合言葉「石川さんごめんなさい」が有名ですが、USには「Every time you run setenforce 0, you make Dan Walsh weep.」というフレーズがあるようです。

 実は、筆者は、先日、RHEL Atomic Hostの開発チームがいるボストン・ウェストフォードのオフィスに行って、Dan Walshから直接にSPCの説明を受けていました。その際、SPCのデモがうまくいかず、問題点を切り分けるため、Dan自身が「setenforce 0」を実行するという貴重な場面がありました。その途端に、(筆者を含めて)まわりにいたメンバーが一斉に驚きの声をあげて笑い出したのは、いい思い出になりました。

 今回、ウェストフォードのオフィスでは、RHEL Atomic Hostの他にも、Docker環境のオーケストレーションツールである、KubernetesやOpenShift v3の説明も聞いてきました。次回は、Kubernetes内部の仕組みについて、解説したいと思います。

参考資料

(*1) 「[Introducing a *Super* Privileged Container Concept

(*2) 「RHEL Atomic HostのSPCとatomicコマンドについて

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes