2014年3月DockerでTorアプライアンス(的なもの)を作ってみる最近個人的に注目しているものにDockerがあるのですが、これ、簡単にいうと、Linuxの構成をコンテナ化して、システム間での可搬性を実現するシステムです。コンテナ内のプロセスは隔離されるため、要は仮想環境を構成するシステムなわけですが仮想マシンと違って環境を走らせるオーバーヘッドが非常に軽く、普通のソフトウェアを動作させる感覚でコンテナが実行できます。Ubuntuを使っていてCentOSやFedoraの環境を構成したい、というようなことも可能です。(Linuxをベースにして走らせる仕組みになっていますので、例えばWindowsを走らせたり、反対にWindowsからコンテナをそのまま実行したり、ということはできません。その場合は仮想環境を作るソフトが必要になります。)どういうことに使えるか、というと現場環境に近いテスト環境を作成する環境をローカルで構築し、Dockerがデプロイされている環境にそのまま移植する)メイン環境に手を加えずにシステムに変更を加えるようなソフトウェアを利用する(特にroot権限を要するようなプロセスを走らせないといけない場合、-vオプションなのでファイルシステムのアクセスを与えない限りファイルのアクセス権限はコンテナ内に制限されるため、比較的安全に実行できます。/*が実行された場合でも外部にコンテナ外には影響は及びません。)など、いろいろと考えられると思います。PHP実行環境のバージョンが異なったウェブサーバを立ち上げる、ということができるようになります。今回これを利用してTorのアプライアンス的なものを作ってみることにしました。Torのファイル自体は公式レポジトリのものを使用します。空のディレクトリにDockerfileというファイルを作成し、以下のように記述しました。["tor"]このスクリプトによりTorのレポジトリを追加し、インストールした上で、目的に書き換えたfiles/torrcを含めた上でコンテナ化する、という設定になっています。レポジトリがない場合でも、依存を設定した上で、最新ソースを引っ張り、コンパイルした上で配置、クリーンアップしてコンテナ化する、といったようなことももちろん可能になります。すると自動的にapt-getによるファイルの入手や、インストールが行われ、ローカルのイメージリストにhsaito/torboxが作成されます。Indexにプッシュしました。このプッシュという方式はGitによく似ています。プッシュやプルの場合、差分のみが送受信される形になります。Dockerが強力などが派生環境を非常に手軽に作れることです。relayサーバをコンテナ化したいとします。なると必要なDockerfileの定義は以下のようになります。hsaito/torbox」を設定しているため、すでにhsaito/torboxを持っている場合はそれが再利用され、差分だけがダウンロードされます。(こちらはhsaito/torbox-relayとしてプッシュしました。)そのため、レポジトリからTorをインストールしたりする定義は行っていません。変わっているのは独自のtorrcを差し替え、露出されるポート番号を変更しているだけになります。実は上記の場合も元のイメージの「ubuntu:13.10」を前提に作っています。これを利用することにより、例えばウェブサーバを含んだコンテナをまず作成しライブラリのみを差し替えた差分コンテナを作成する、という方法をとることにより、楽にコンテナ環境が作成・管理できます。hsaito/torboxなどで実行できます。(relay版を使用する場合はhsaito/torboxをhsaito/torbox-relayに置き換えて下さい。本サイトの内容は個人的主観に基づくため、著者の関係者の意見とは異なる場合があります。そのため、内容に関して、お答えすることはできませんので、著者以外へのお問い合わせはご遠慮下さい。本サイトは日本国外に居住する著者より、日本国外から、地域を問わず日本語を解する人向けに公開される情報であり、その内容は必ずしも日本国内での事情に対応するものではない可能性がありますので、利用に関してはご留意ください。内容は執筆時の情報に基づくため、書かれている事実等が変化している場合があります。本サイトに表示される時間はUTCです。JapaneseはFirefoxをおすすめします。思い出ブログをメールで購読メールアドレスを記入して購読すれば、更新をメールで受信できます。WordPress%d人のブロガーが「いいね」をつけました。