Armadillo Base OS搭載製品ではアプリケーションをコンテナで実装します。
本ブログではコンテナが分からない/使った事がない方向けに分かりやすい説明としています。
コンテナの概要
コンテナ技術とは、簡単な言葉で説明するとアプリケーションの実行に必要なすべてのファイルをOSから分離
させて実行する技術です。
簡単に言えば、アプリケーション実行に必要なスクリプトやライブラリが集まった箱としてOSと分離して管理
できるようになります。それによりコンテナ単位で依存関係をクローズできる為、コンテナ単位での持ち出しや
コンテナの入れ替え(アプリのアップデート)等が実現できます。アプリの削除もコンテナを消すだけです。
大雑把には下記の様なイメージです。
コンテナを使う事によるメリット
・コンテナ化する事でセキュアなシステムを作ることが出来る
⇒外部からコンテナの中を見る事が出来ない(サンドボックス化)
コンテナからコンテナ外へのアクセス権限を制限(マルウェア等でのアクセスを制限)
・コンテナ単位でアプリケーションの入れ替えや同時起動も出来る
⇒依存関係がコンテナ単位でクローズされており、入れ替える事でアプリをアップデートできる
他のコンテナの環境に左右されない為、コンテナの同時起動も可能(リソース次第)
・コンテナ毎にLinuxディストリビューションやバージョンの異なるコンテナを作ることが出来る
⇒例)DebianやUbuntu,Alpineなどを選択できる
python3.7とpython3.9の環境を別々に作成し、デバッグ出来る
用途毎にコンテナを作れる(メインアプリ用コンテナ、監視用コンテナ、メンテナンス用コンテナ等)
コンテナとコンテナイメージについて
コンテナを作るにはコンテナイメージが必要になります。
・コンテナイメージとは、コンテナで使用するファイル群(箱)を指す
・コンテナとはコンテナイメージからファイルを読みだしたアプリケーション実行環境
イメージとしては下記のような関係性です。
よって、コンテナイメージを作成し、コンテナを起動する事でアプリケーションを実行する事になります。
コンテナイメージの作成手順(概要)
基本的にコンテナイメージを作成するには下記の様に作ります。
1.元となるコンテナイメージをDocker Hubから選定(探し方はこちらを参照)
2.選定したコンテナイメージからコンテナを起動
3.コンテナ内にパッケージインストールやファイルを配置
4.コンテナをコンテナイメージとして保存
上記1~4を行う事でコンテナイメージを作成できますが、Dockerfileを使用する事で上記を一括で処理する事が可能です。
Armadillo Base OSではVScodeでDockerfileを使用してコンテナイメージを作成します。
VScodeでのコンテナの作り方の詳細は製品マニュアルまたは下記リンクを参照下さい。
参考ブログ:Armadillo Base OS:アプリケーションの作り方
コンテナの起動について
コンテナを起動する際には幾つか指定する項目があります。
・《必須》使用するコンテナイメージを指定する
・《必須》コンテナで実行するコマンドを指定する
・《任意》デバイス/ファイルへのアクセス権限を指定する
・《任意》環境変数を指定する
etc...
Armadillo Base OS搭載製品ではコンテナのコンフィグファイルでこれらを指定してコンテナを自動起動します。
コンテナのコンフィグファイルは上記参考ブログのapp.confを参照下さい。
コンテナの解説は以上となります。