質問
Kota Torikai · 2021年3月5日

Ubuntu 20.04.2でのDocker, IRIS(DL製品版)導入-起動までのメモ

<Ubuntu-Docker>

https://qiita.com/tkyonezu/items/0f6da57eb2d823d2611d 手順を参照

手順2.1-2.5までを実行→Docker環境ができる

<Docker-IRIS>

1. 端末などでディレクトリ /home/usr/docker/iris2020.3 を作成(ディレクトリ名は任意)

2. 上記ディレクトリに、インターシステムズから送られるDLサイトからダウンロードしたirishealth_ml-2020.3.0.304.0-docker.tar.gz を置く

2.1 上記ディレクトリに、データベース・設定を保存するディレクトリを作成(/home/usr/docker/iris2020.3/mgr とする)

3. 上記ディレクトリに、ライセンスされたキーであるiris.keyを置き、端末コマンドcdで上記ディレクトリに移動

4. コマンド実行(tar.gzのままimageのload)

sudo docker load -i /home/usr/docker/iris2020.3/irishealth_ml-2020.3.0.304.0-docker.tar.gz

5. コマンドdocker imagesでREPOSITORY:TAG名称を確認

sudo docker images

intersystems/irishealth-ml:2020.3.0.304.0     runで使用する名称はREPOSITORYとTAGの間を : で繋いだものになる

6. コマンド実行(run)

ポート、ディレクトリ、image名称を正確に入力する

--env ISC_DATA_DIRECTORY で2.1で作成したディレクトリを指定

sudo docker run --name iris --detach --publish 52773:52773 --volume /home/usr/docker/iris2020.3:/external --env ISC_DATA_DIRECTORY=/external/mgr intersystems/irishealth-ml:2020.3.0.304.0 --key /external/iris.key

--name iris  の"iris"は起動名(任意)

7.コマンド実行(start) 起動名を合わせる

sudo docker start iris

8. docker psコマンドで起動したかを確認

sudo docker ps

9.Webブラウザ(UbuntuデフォルトはFireFox)のURLに以下を入力して初期起動

http://localhost:52773/csp/sys/UtilHome.csp

デフォルトログインは login: _SYSTEM, pass: SYS

で、起動時に変更を求められるため、これを変更すると管理ポータルが表示される

52773 ポートはデフォルト、もし変更していれば適宜合わせる)

10.docker exec によるIRISターミナル接続方法
sudo docker exec -ti iris iris terminal iris

(最初のirisは起動名、後ろ2つのirisは指定されたプログラム名であることに注意)

Product version: IRIS 2020.3
00
1 0 2 45
Log in or sign up to continue

返信

鳥飼先生、

貴重なご投稿ありがとうございます。これからDockerに取り組もうとしているコミュニティの方々に大変役に立つ記事だと思います。

さて、すでにご存知かもしれませんが、1点念のためにお伝えした方が良いと思い、返信します。

docker環境でのシステムデータベースや設定ファイルは、コンテナの内部に作成されますので、docker rm コマンドでコンテナを削除すれば、コンテナstartから更新された設定などもなくなってしまいます。また、dockerコンテナ内のファイルとして作成したデータベースも同様です。

システムデータベースをコンテナの外部に構築し、コンテナのライフサイクルを越えてシステムデータベースや各種設定を維持するには、"Durable %SYS"と呼ばれる仕組みを使います。

具体的には、

sudo docker run --name iris --detach --publish 52773:52773 --volume /home/usr/docker/iris2020.3:/external --env ISC_DATA_DIRECTORY=/external/iris intersystems/irishealth-ml:2020.3.0.304.0 --key /external/iris.key

と ISC_DATA_DIRECTORY環境変数に外部ファイルシステムのディレクトリを指定します。そうすると、コンテナをrmした場合や、イメージを更新して新たにコンテナを作成した場合も、システムデータベースや設定ファイルの内容はが引き継がれます。

自分でデーターベースを作成する際に、/externalファイルシステムに作成すると、そのデータベースもコンテナのライフサイクルを越えて保持されます。

以上、念のためご確認ください。

堀田様、

お忙しい所フォローありがとうございます。実はご指摘の(データベース等をdockerサイクルによらず保存する方法)について質問をしようとしていたところで、大変助かります。

利用法のデフォルトで記載されているとよい内容と思いますので、編集して追記させていただきます。