本ブログではコンテナ作成時に使用するコンテナイメージを取得する方法をご説明します。
はじめに
Armadillo-IoT G4はeMMC(ストレージ)への書き込みを最小限にする観点から、tmpfs(メモリ上に作成するファイルシステム)に保存する設定にしております。メモリ上のファイルは電源を一度落とすと消えてしまう為、開発時はeMMCへ書き込む様に下記の様に設定を変更します。
ファイルをeMMCへ保存に変更するコマンド
# abos-ctrl podman-storage --disk (バージョン v3.15.4-at.6以降で対応)
または
# podman_switch_storage --disk
ファイルをtmpfs(メモリ)へ保存に変更するコマンド
# abos-ctrl podman-storage --tmpfs (バージョン v3.15.4-at.6以降で対応)
または
# podman_switch_storage --tmpfs
ファイルの保存先設定を確認するコマンド(下記はeMMCへ保存する設定)
# abos-ctrl podman-storage --status (バージョン v3.15.4-at.6以降で対応)
または
# podman_switch_storage --status
Currently in disk mode, run with --tmpfs to switch
以下、eMMCへ保存する事を前提で記載致します。
コンテナイメージとは
コンテナイメージとは、 アプリケーション実行に必要な変数・コマンドやメタデータを含む動作環境テンプレートです。
(開発済みコンテナからコンテナイメージを作る事も可能ですが、ここでは省略します)
例えばDockerHub(後述)からコンテナイメージとしてDebianを選択し、それを用いてコンテナを作るとコンテナ内は
Debianと同様に開発が可能な環境になります。必要なパッケージも追加でインストール可能です。
ここでArmadillo BASE OSの上にDebianが載る様なイメージをされると思いますが、コンテナ内のプロセスは
実際にはArmadillo BASE OS上で実行されているプロセスですので、オーバーヘッドはほぼ発生しません。
コンテナイメージの取得方法
コンテナイメージはDockerHubから入手します。
ここではDebian 11(bullseye)を入手する方法を説明します。
まず、上記DockerHubのリンクを開き、下記のExploreをクリックします。
Exploreからページを開くと下記の様にたくさんのディストリビューションのイメージが表示されます。
左上の検索から探したいディストリビューションを選択します。ここではdebianと入力します。
Debianが見つかったらクリックしてDebianのページに移動します。
次にtagをクリックしてDebianイメージ一覧を表示します。
検索から使いたいバージョンを指定します。ここではbullseyeと入力します。
スクロールして使いたいイメージを探します。
イメージが見つかったらその下の+x more...をクリックすると全ての対応アーキテクチャが表示されます。
ここに下記アーキテクチャが表示されていれば使用可能です。(大抵のメジャーなイメージには対応しています)
Armadillo-IoT G4:linux/arm64/v8
Armadillo-X2:linux/arm64/v8
Armadillo-IoT A6E:linux/arm/v7
Armadillo-640/610:linux/arm/v7
イメージが使用出来る事が確認出来たら、後はpodman pullコマンドでダウンロードします。
実環境(Armadillo上)でコマンド実行する場合は下記の通りです。
イメージ名"debian"、タグ名"bullseye"をDocker Hubから持ってきます。
# podman pull docker.io/debian:bullseye
Trying to pull docker.io/library/debian:bullseye...
Getting image source signatures
…
…
Writing manifest to image destination
Storing signatures
e38a1b1bebd53396928bac3000fcc9fee3970cd022eae1e79fbd08d46a1a6ea8
取得したイメージを確認
# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/debian bullseye e38a1b1bebd5 13 days ago 123 MB
ATDE環境などでコンテナイメージをダウンロードする場合は下記の様にアーキテクチャを
指定します。
アーキテクチャ
・arm64v8:Armadillo-IoT G4/X2
・arm32v7:Armadillo-IoT A6E/640/610
[ATDE]$ podman pull docker.io/arm64v8/debian:bullseye //arm64v8向け
[ATDE]$ podman pull docker.io/arm32v7/debian:bullseye //arm32v7向け
以上で、コンテナ作成に必要なコンテナイメージを取得できます。