InterSystems IRIS の基礎 : InterSystems IRIS コンテナの実行
InterSystems IRIS コンテナを起動できるよう、このドキュメントでは、以下を含む基本的な手順を示します。
-
プラットフォームの選択
-
Docker のインストール
-
InterSystems IRIS イメージのダウンロード
-
外部ストレージ位置へのライセンス・キーの追加
-
InterSystems IRIS イメージからのコンテナの実行
-
永続的な %SYS を使用したインスタンス固有データの保存
これらの手順などを扱う簡単なオンラインの実践演習は、"Deploying and Customizing InterSystems IRIS ContainersOpens in a new tab" をお試しください。InterSystems IRIS コンテナの概要および InterSystems IRIS コンテナ・イメージおよびインターシステムズ提供のその他のイメージの使用法の詳細は、"コンテナ内でのインターシステムズ製品の実行Opens in a new tab" (このドキュメントには、このページへの多数のリンクが含まれます) およびこのドキュメント末尾の "コンテナ内の InterSystems IRIS の詳細" に示すその他のリソースを参照してください。
Note:
ここに含まれるコマンドによっては、root 特権が必要なものがあります。
Docker のインストール
Docker エンジンは、コンテナ化されたアプリケーションをビルドして実行するワークフローとオープン・ソースのコンテナ化テクノロジとの組み合わせで構成されます。Docker エンジンをサーバにインストールするには、Docker のドキュメンテーションの "Install Docker EngineOpens in a new tab" を参照してください。
Important:
インターシステムズのコンテナ・イメージは Open Container Initiative (OCIOpens in a new tab) の仕様に準拠しており、広く利用されている Ubuntu オペレーティング・システム上の Docker Enterprise Edition エンジンを使用して構築されます。このエンジンは、OCI 標準を全面的にサポートしており、これによってイメージを認定し、Docker Hub レジストリで公開することができます。したがって、インターシステムズ提供のイメージは、オンプレミスとパブリック・クラウドの両方において、Linux ベースのオペレーティング・システム上の任意の OCI 準拠ランタイム・エンジンでサポートされます。
InterSystems IRIS イメージのダウンロード
インターシステムズ提供の InterSystems IRIS イメージをこの実践練習で使用できるようにするには、作業しているシステムにイメージをダウンロードする必要があります。イメージの入手方法はいくつかありますが、以下では、それぞれの方法で入手して、使用できる、あるいは使用できる可能性のある InterSystems IRIS イメージについて説明しています。
-
InterSystems Container Registry (ICR) から InterSystems IRIS Community Edition イメージを入手して使用できます。ICR には、インターシステムズから入手可能なすべてのイメージのリポジトリが含まれています。ICR の詳細は、"InterSystems Container Registry の使用Opens in a new tab" を参照してください。Docker HubOpens in a new tab から Community Edition のイメージをダウンロードすることもできます。
InterSystems IRIS Community Edition には 13 か月分の無料の組み込みライセンスが付属しています (これにはいくつかの機能制限があります)。この実践練習で Community Edition を使用する場合、次の手順 ("外部ストレージ位置へのライセンス・キーの追加") で説明しているように、ライセンス・キーを指定する必要はありません。詳細は、"InterSystems IRIS の導入と操作" の "独自のシステムへの InterSystems IRIS Community Edition の導入" を参照してください。
Note:
別のオプションとして、実行中の InterSystems IRIS Community Edition コンテナをホストするクラウド・ノードを GCP、AWS、または Azure 上にプロビジョニングする方法があります。"クラウド・ノードへの Community Edition の導入" を参照してください。
-
インターシステムズのお客様は、リリースされている InterSystems IRIS イメージを InterSystems Container Registry (ICR) から取得して使用できます。"InterSystems Container Registry の使用Opens in a new tab" では、IRC Web ポータルOpens in a new tabで入手できる InterSystems IRIS イメージを参照したり、WRC 認証情報を使用してレジストリに対して認証し、イメージをダウンロードできるようにする方法について説明しています。
-
1 つ以上の InterSystems IRIS イメージが含まれるプライベートのイメージ・レジストリが組織で使用されていることがあります。その場合は、レジストリの場所、必要なイメージのリポジトリとタグ、およびアクセスに必要な認証情報を取得します。
ダウンロード元のレジストリおよび必要に応じて認証情報を確認した後、"InterSystems IRIS イメージのダウンロードOpens in a new tab" で、InterSystems IRIS イメージをダウンロードする手順を参照してください。
わかりやすくするために、実践練習では、イメージ intersystems/iris:2022.3.0.205.0 を使用して作業することを前提としています。
外部ストレージ位置へのライセンス・キーの追加
あらゆる InterSystems IRIS インスタンスと同様に、コンテナ内で実行されるインスタンスにもライセンス・キー (通常は iris.key) が必要です。
ICR または Docker Hub から入手できる InterSystems IRIS Community Edition イメージ (前のセクションの説明のとおり) には、無料の組み込み一時ライセンスが付属しています。ただし、通常、ライセンス・キーは InterSystems IRIS コンテナ・イメージに含まれておらず、含めることもできません。代わりに、コンテナの起動後にコンテナにコピーして、そこで実行される InterSystems IRIS インスタンスに対して有効にする必要があります。iris-mainOpens in a new tab プログラムはこのためのオプションを備えていますが、外部ボリュームとしてマウントするストレージ位置にライセンス・キーを配置する必要があります。このオプションを使用する手順は次のセクションで示しています。InterSystems IRIS コンテナのライセンス・キーの詳細は、"InterSystems IRIS コンテナのライセンス・キーOpens in a new tab" を参照してください。
InterSystems IRIS ライセンス・キー・ファイル iris.key を外部ストレージ位置にコピーします。
InterSystems IRIS イメージからのコンテナの実行
InterSystems IRIS イメージをローカル・マシンで使用できるようにし、外部ストレージ位置を特定してそこにライセンス・キーを配置したら、docker run コマンドを使用してコンテナを作成および起動する準備が整います。次に示すように、docker run コマンドは実際には 3 つの個別のコマンドを組み合わせたものです。
-
docker pull — イメージがまだローカルに存在していない場合は、イメージをダウンロードします。
-
docker create — イメージからコンテナを作成します。
-
docker start — コンテナを起動します。
これらのコマンドそれぞれは、さまざまなコンテキストでさまざまな目的のために個別に使用できます。詳細は、Docker ドキュメンテーションの "Docker run referenceOpens in a new tab" を参照してください。
サンプルの docker run コマンドは以下のとおりです。このコマンドのすべてのオプションについては、付随するテキストで説明しています。docker run コマンドのオプションは、イメージ指定の前のコマンド行に表示されますが、InterSystems iris-main プログラムはイメージ指定の後に表示されることに注意してください。(このサンプルでは、docker run の一部である pull コマンドは不要です。これは、使用する iris イメージを既にダウンロード済みであるためです)。
docker run --name iris
--detach
--publish 52773:52773
--volume /nethome/pmartinez/iris_external:/external
intersystems/iris:2022.3.0.205.0
--key /external/iris.key
-
--name container_name
コンテナの名前を指定します。これは、他の Docker コマンドで対象のコンテナを参照する際に使用できます (例えば、コンテナを停止する場合の docker stop container_name)。
-
--detach
コンテナをバックグラウンドで実行します (また、コンテナの一意の ID を表示します)。
-
--publish host_port:container_port
コンテナ内のポートをホスト上のポートに公開して、コンテナ外部 (ホスト上または他のマシン上) のエンティティからそのコンテナ内のプログラムにアクセスできるようにします。例えば、InterSystems IRIS インスタンスの管理ポータルには、インスタンスの Web サーバ・ポート (既定で 52773) を使用してアクセスできます。コンテナ内のこのポートをホスト上のポートに公開すると、ホストのポートを使用して、インスタンスの管理ポータルをブラウザにロードできるようになります。
--volume external_storage_path:internal_volume
コンテナからアクセス可能な外部ストレージ位置をコンテナ内のストレージ・ボリュームとしてマウントします。この方法でマウントできるストレージ位置および必要になる可能性のある Docker 構成の詳細は、Docker ドキュメンテーションの "VolumesOpens in a new tab" を参照してください。
-
repository/image:tag
プルされ、コンテナの作成に使用されるイメージを指定します ("InterSystems IRIS イメージのダウンロード" を参照)。docker images コマンドを使用して、使用可能なイメージをリスト表示し、必ず適切なイメージを指定してください。
-
--key license_key_path
コンテナ内のインスタンスにインストールされる InterSystems IRIS ライセンス・キーを識別する iris-main オプションです。この位置はマウント・ボリューム上である必要があります ("外部ストレージ位置へのライセンス・キーの追加" を参照)。コンテナが実行中の場合、ステージングされるライセンス・キーの変更を iris-main が継続的に監視します。変更が検出された場合は、現在の /mgr/ ディレクトリにコピーされ、有効化Opens in a new tabされます。
前述のサンプルと説明を使用して独自の docker run コマンドを作成し、それをコマンド行で実行します。そのコマンドが完了したら、docker ps コマンドを使用して、リスト内のコンテナのステータスが Up になっていることを確認します。
$ docker run --name iris --detach --publish 52773:52773
--volume /nethome/pmartinez/iris_external:/external
intersystems/iris:2022.3.0.205.0
--key /external/iris.key
426d4a511d6746d89ec2a24cf93b29aa546ea696b479a52210d37da4c6d04883
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
426d4a511d67 intersystems/iris:2022.3.0.205.0 "/iris-main --key ..." 5 seconds ago Up 3 seconds
PORTS NAMES
0.0.0.0:52773->52773/tcp iris
Note:
InterSystems IRIS Community Edition イメージ ("InterSystems IRIS イメージのダウンロード" を参照) には無料の組み込みライセンスが付属しているため、--key オプションは不要です。
イメージがローカルには存在しないが、組織のリポジトリにある場合、コンテナを作成して起動する前に Docker がイメージをプル (ダウンロード) します。
例で示しているように、コンテナの作成後、Docker は UUID ロング識別子を出力します。先頭の 12 文字によって UUID ショート識別子が構成されます。これは、例えば docker ps コマンドからの出力など、他の出力でのコンテナの識別に使用されます。
永続的な %SYS を使用したインスタンス固有データの保存
コンテナ化されたアプリケーションはホスト環境から分離されているので、永続データを書き込みません。コンテナが削除され、新しいコンテナに置き換えられるときに、アプリケーションがコンテナ内で書き込んだ内容が失われるためです。このため、コンテナ化されたアプリケーションの導入で重要な点は、コンテナの外部にデータを保管し、他のコンテナや後続のコンテナがそのデータを使用できるようにすることです。
永続的な %SYS 機能を使用すると、インスタンス固有のデータ (ユーザ定義、監査レコード、ログ・ファイル、ジャーナル・ファイル、WIJ ファイルなど) の永続ストレージが可能になり、コンテナ内での InterSystems IRIS の実行時に、単一インスタンスを時間の経過と共に複数のコンテナで順番に実行できるようになります。例えば、永続的な %SYS を使用して InterSystems IRIS コンテナを実行すると、元のコンテナを停止して、元のコンテナで作成されたインスタンス固有のデータを使用する新しいコンテナを実行することによって、インスタンスをアップグレードすることができます。
前のセクションで実行したコンテナを永続的な %SYS で実行するには、docker run コマンド行に 1 つの変更を加えます。ISC_DATA_DIRECTORY 環境変数を使用して、マウントされた外部ボリュームで作成される永続的な %SYS ディレクトリを指定します。コンテナを実行する際は、このボリュームを /external と呼ぶため、ここで作成される永続的な %SYS ディレクトリを durable と呼び、前のセクションのコマンド行を以下のように変更しましょう。
$ docker run --name iris-durable --detach --publish 53773:52773
--volume /nethome/pmartinez/iris_external:/external
--env ISC_DATA_DIRECTORY=/external/durable
intersystems/iris:2022.3.0.205.0
--key /external/iris.key
696b479a52210d37da4c6d04883426d4a511d6746d89ec2a24cf93b29aa546ea
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
696b479a5221 intersystems/iris:2022.3.0.205.0 "/iris-main --key ..." 5 seconds ago Up 3 seconds
PORTS NAMES
0.0.0.0:52773->52773/tcp iris-durable
Important:
上のコマンド行は、前のコマンド行で公開されているホスト・ポート 52773 を 53773 に変更し、コンテナの名前を iris-durable に変更します。ただし、最初に以下のコマンドで前のコンテナを停止して削除すれば、前と同じようにポート 52773 と名前 iris を使用することはできます。
$ docker stop iris
iris
$ docker rm iris
iris
コンテナ内の InterSystems IRIS インスタンスのインスタンス固有データを調べるには、ホスト・ファイル・システム上のマウントされた外部ボリュームの永続的な %SYS に移動します。以下に例を示します。
$ cd /nethome/pmartinez/iris_external/durable
$ ls -l
total 30
drwxrwxr-x 7 irisowner irisowner 4096 Jan 19 10:03 csp
drwxr-xr-x 3 irisowner irisowner 4096 Jan 19 10:03 dist
drwxrwxr-x 5 irisowner irisowner 4096 Jan 19 10:03 httpd
-rw-rw-r-- 1 irisowner irisowner 12713 Jan 19 10:04 iris.cpf
-rwxr-xr-x 1 irisowner irisowner 9527 Jan 19 10:04 _LastGood_.cpf
drwx------ 1 irisowner irisowner 4096 Jan 30 18:27 mgr
永続的な %SYS でのコンテナの実行の詳細は "永続インスタンス・データを保存するための永続的な %SYSOpens in a new tab"、アップグレードについては "InterSystems IRIS コンテナのアップグレードOpens in a new tab" を参照してください。
コンテナ内の InterSystems IRIS の詳細
コンテナおよび InterSystems IRIS の提供内容について引き続き調べるには、以下のドキュメントとリソースを使用してください。