Docker を使用して Orion Context Broker を非常に簡単に実行できます。これを行うにはいくつかの方法があります。複雑さの順に次のとおりです :
- "Have everything automatically done for me" : セクション1 を参照してください。推奨する最速の方法です
- "Only run a Context Broker, I'll take care of where I put my database" : セクション2を参照してください。Orion を1つのコンテナで実行します
- "Let me see how this docker thing works from the inside" または "I want to customize my Orion Docker file" : セクション3を参照してください。Docker イメージのビルドです
これらは同じことをする別の方法ですが、3つすべてを行う必要はありません。
Docker が動作するマシンが必要です。これを行う方法の ドキュメントを参照してください。
Docker Compose を使用すると、Orion Context Broker コンテナを MongoDB コンテナに数分でリンクすることができます。この方法では、Docker Compose をインストールする必要があります。
Orion Context Broker を試してみたいし、データベースについて気にしたくない場合や、データの消失に気にしない場合は、この方法を検討してください。
次の手順を実行します :
-
作業するシステム上のディレクトリを作成します。たとえば
~/fiware
です -
ディレクトリ内に
docker-compose.yml
という名前の新しいファイルを次の内容で作成します :mongo: image: mongo:3.4 command: --nojournal orion: image: fiware/orion links: - mongo ports: - "1026:1026" command: -dbhost mongo
-
コマンドラインを使用して作成したディレクトリで、
sudo docker-compose up
を実行します
--nojournal
に関しては、それはプロダクション利用では推奨されていませんが、Orion コンテナが高速で、DB が見つからず準備ができていない場合に、mongo コンテナの起動を高速化し、いくつかの競合状態の問題を回避します。
数秒後に、Context broker を実行し、ポート1026でリッスンする必要があります。
以下を実行し、動作することを確認します。
curl localhost:1026/version
この方法で行ったことは、Docker Hub というイメージの公開リポジトリから Orion Context Broker と MongoDB 用のイメージをダウンロードすることです。次に、両方のイメージに基づいて2つのコンテナを作成しました。
このシナリオを停止したい場合は、docker-compose が実行されているターミナルで Control+C を押す必要があります。このメソッドを使用して Orion で使用されていたデータはすべて失われます。
このメソッドは、Orion Context Broker を実行しているコンテナを起動しますが、MongoDB インスタンスを提供するのはあなた次第です。この MongoDB インスタンスは、ローカルホスト、ネットワーク上の他のホスト、別のコンテナ、またはネットワークにアクセスできる場所で実行されている必要があります。
ヒント : これらの方法を試しているか、複数回実行していて、コンテナがすでに存在しているというエラーが表示された場合は、
docker rm orion1
で削除できます。コンテナを停止しなければならない場合は、まずdocker stop orion1
を実行して、止めてください。
これらのコマンドを使用すると、Orion のタグと特定のバージョンにアクセスできます。たとえば、特定のバージョンが必要な場合は、次のコマンドで fiware/orion
の代わりに fiware/orion:0.22
を使用できます。バージョンを指定しない場合は、デフォルトで 最新
のものから取得します。
これを実行するには、このコマンドを実行します。
sudo docker run -d --name orion1 -p 1026:1026 fiware/orion
すべてが動作することを確認します。
curl localhost:1026/version
他のコンテナで MongoDB を実行したい場合は、次のように起動することができます
sudo docker run --name mongodb -d mongo:3.4
そして、このコマンドで Orion を実行します
sudo docker run -d --name orion1 --link mongodb:mongodb -p 1026:1026 fiware/orion -dbhost mongodb
すべてが動作することを確認します。
curl localhost:1026/version
このメソッドは、セクション1で説明したものと機能的に同等ですが、docker-compose ファイルではなく手動でステップを実行します。 MongoDB コンテナを無効にするとすぐにデータが失われます。
別の MongoDB インスタンスに接続する場合は、前のコマンドの代わりに、次のコマンドを実行します
sudo docker run -d --name orion1 -p 1026:1026 fiware/orion -dbhost <MongoDB Host>
すべてが動作することを確認します。
curl localhost:1026/version
イメージを構築することで、Orion Context Broker コンテナ内で何が起こっているのかをより詳細に制御できます。Docker イメージの作成に慣れている場合、またはイメージの作成方法を変更する必要がある場合にのみ、この方法を使用してください。ほとんどの場合、イメージを構築する必要はないでしょう。すでに構築されているコンテナのみを展開してください。セクション1と2で説明しています。
ステップ :
- Orion のソースコードを Github からダウンロードします (
git clone https://github.com/telefonicaid/fiware-orion/
) cd fiware-orion/docker
- Dockerfile を好みに合わせて変更します
- Orion を実行 ...
- docker-compose で自動化されたシナリオを使用し、新しいイメージを構築する :
sudo docker-compose up
。必要に応じて、提供されているdocker-compose.yml
ファイルを変更することもできます - 手動で MongoDB を別のコンテナで実行します :
1.
sudo docker run --name mongodb -d mongo:3.4
2.sudo docker build -t orion .
3.sudo docker run -d --name orion1 --link mongodb:mongodb -p 1026:1026 orion -dbhost mongodb
. - 手動で MongoDB ホストを見つける場所を指定します :
sudo docker build -t orion .
sudo docker run -d --name orion1 -p 1026:1026 orion -dbhost <MongoDB Host>
.
- docker-compose で自動化されたシナリオを使用し、新しいイメージを構築する :
すべてが動作することを確認します
curl localhost:1026/version
docker build
コマンドのパラメータ -t orion
は、イメージに名前を付けます。この名前は何でもかまいませんし、-t org/fiware-orion
のような組織も含めています。この名前は後でイメージに基づいてコンテナを実行するために使用されます。
イメージとビルド・プロセスの詳細については、Docker のドキュメントを参照してください。
Docker コンテナと Orion Context Broker を操作する際に留意すべき事項です。
Docker コンテナ化された Orion Context Broker で行うすべての作業は、非永続的なものです。 MongoDB コンテナを無効にすると、すべてのデータが失われます。これは、この README に記載されているいずれの方法でも発生します。
これを防ぐには、MongoDB Docker のドキュメントの "どこにデータを格納するか (Where to Store Data)" のセクションの このリンクを参照してください。その中に MongoDB のデータを永続化する方法とアイデアがあります。
sudo を使用したくない場合は、以下の手順に従ってください。
-p 1026:1026
では、最初の値は localhost でリッスンするポートを表します。マシン上で2番目のコンテキスト broker を実行する場合は、この値を別の値に変更する必要があります。たとえば、-p 1027:1026
です。
コンテナイメージの名前 (ビルドしている場合は orion
、リポジトリからプルしている場合は fiware/orion
) の後ろは、Orion Context Broker のパラメータとして解釈されます。ここでは、MongoDB ホストがどこにあるかを broker に伝えています。これは、他の MongoDB コンテナの名前で表されます。他のコマンドライン・オプションの ドキュメントを見てください。
Orion は マルチテナントモードで動作します。