3.1. コンテナ実行環境

Terminal System 2のコンテナ実行環境について説明します。

../../_images/feature_container_execution.png

図 11 コンテナ実行環境

Docker Composeプロジェクトの管理

Terminal System 2は、コンテナの実行管理にDocker Composeを使用します。

Docker Composeでは、複数のDockerコンテナを定義し、それらをプロジェクトとしてまとめて管理することが可能です。 Terminal System 2では、systemプロジェクト、measurementプロジェクトおよびカスタマイズが可能なカスタムプロジェクトを利用することができます。

注釈

Terminal System 2が利用するプロジェクトおよびコンテナの概要については Docker Compose を参照してください。

プロジェクトの操作

Terminal System 2のDocker Composeプロジェクトは、Core Daemonにより操作されます。 プロジェクトの起動(up)、終了(down)およびイメージ更新(pull)のタイミングは以下のとおりです。

プロジェクトの起動/終了

Terminal System APIの Start Docker Compose / Stop Docker Compose を呼び出すことで、プロジェクトの起動/終了が可能です。

また、Terminal System APIの Create Docker Compose / Update Docker Compose の設定項目 boot_after により、システム起動時や指定したプロジェクトの後に自動的に起動することが可能です。

  • "system" を指定した場合、プロジェクトはシステム起動時に起動し、システム終了時に終了します。

  • "measurement" を指定した場合、プロジェクトはmeasurementプロジェクトの起動後に起動し、measurementプロジェクトの終了後に終了します。

  • "" を指定した場合、自動起動は行いません。 Start Docker Compose / Stop Docker Compose のみで起動/終了します。

プロジェクトのイメージ更新

Terminal System APIの Pull Docker Compose を呼び出すことで、プロジェクトのイメージ更新が可能です。

プロジェクトの追加・削除

カスタマイズにより、新しいカスタムプロジェクトを追加・削除することが可能です。 詳細は アプリケーション開発 を参照してください。

systemプロジェクトおよびmeasurementプロジェクトを削除することはできません。

Dockerイメージ

Terminal System 2が利用するDockerイメージについて説明します。

プリインストールイメージ

Terminal System 2は、 Docker Compose に記載された、デフォルトで利用するDockerイメージをプリインストールしています。 プリインストールコンテナのイメージおよびタグ名は以下の環境変数ファイルに定義されており、Core DaemonがDocker Composeを操作する際に使用します。

/etc/core/docker-compose/.env

イメージの取得

プロジェクトで使用するDockerイメージは、基本的にはプロジェクトをpullするタイミングで取得しますが、docker-archive-loadサービスを利用してロードすることも可能です。

docker-archive-loadサービス

tar.gz形式のDockerイメージのアーカイブをロードするsystemdサービスです。 プリインストールイメージを使用する場合や、pullができない場合(プライベートリポジトリのイメージを使用する場合や、オフライン環境の場合)に利用します。 docker-archive-loadサービスは、システム起動時に /usr/bin/docker-archive-load.sh を実行します。システム起動中にこのスクリプトを直接実行することでもロード可能です。

以下のコマンドで作成したアーカイブをサポートします。

$ docker save myimage:latest | gzip > myimage_latest.tar.gz

docker-archive-loadサービスは、エッジコンピューター起動時にディレクトリ /var/lib/docker-archive-load に格納されたアーカイブを自動的にロードしてからCore Daemonを起動します。

/var/lib/docker-archive-load/myimage_latest.tar.gz

イメージの削除

不要なDockerイメージは、Core Daemonにより自動削除されます。 Terminal System APIの Create Docker Compose / Update Docker Compose の設定項目 prune_unused_tag により設定が可能です。

自動削除されるDockerイメージ

削除タイミング

未使用のDockerイメージ(danglingイメージ、タグが <none> のイメージ)

  • Core Daemon起動時(システム起動時)

Core Daemonが管理するDocker ComposeプロジェクトのDockerイメージのうち、使用していないタグのイメージ

  • Core Daemon起動時(システム起動時)

  • Terminal System APIによるDocker Compose起動時( boot_after による自動起動も含む)