ブログ

Armadillo Base OS:コンテナイメージのバージョンについて

at_shinya.matsumoto
2024年12月17日 16時23分

コンテナでアプリケーションを開発するにあたり、コンテナイメージを使用します。
コンテナイメージのバージョンについて注意事項を纏めましたのでご参照頂ければと思います。

目次

コンテナイメージのバージョンとは?
DockerHubのコンテナイメージのlatestバージョンとは?
VScodeでの開発でコンテナイメージのバージョンを指定する方法
VScodeでの開発で使用したコンテナイメージの扱い

コンテナイメージのバージョンとは?

コンテナイメージはDocker Hubからダウンロードしますが、それにもLinuxディストリビューションと同様に
バージョンが存在します。コンテナイメージは <イメージ名>:<タグ名> という表記で記載されています。
基本的にイメージ名もタグ名もユニークに設定可能ですが、オフィシャルイメージではどの様なイメージなのか
分かりやすく下記の様な表記になっています。

また、alpineを例にするとDocker Hubのalpine LinuxのTOPには下記の様なタグ名でバージョンの相関が
記載されています。あくまで現時点での相関になりますが、下記の場合、タグが 20240923 と edge⁠ が
同じコンテナイメージ、3.21.0 と 3.21 と 3 と latest が同じコンテナイメージであることを意味しています。


コンテナイメージのlatestバージョンとは?

上記で挙げた latest というタグが付いたコンテナイメージがあります。
簡単に言えば、最新版という意味になりますが、気を付ける点があります。

開発時など最初は alpine:3.20 と alpine:latest が同じイメージであったとして、その後新しい alpine:3.21 が
リリースされた場合、alpine:latest は 3.20 ⇒ 3.21 に変わります。(TOPで相関を確認できます)
同じコンテナイメージ名を指定しても意図せずメジャーバージョンアップしてしまう場合もありますので、
タグを latest で使うよりは 3.20 といったメジャーバージョンで指定すると良いと思います。


VScodeでの開発でコンテナイメージのバージョンを指定する方法

VScodeで開発する際は、VScodeプロジェクト内のディレクトリにあるDockerfileで指定しています。
そのなかに下記の記述があり、そこでコンテナイメージを指定しています。
※変更する場合は末尾の debian:bullseye-slim の部分のみ変更します。

ARG ARCH
FROM docker.io/${ARCH}/debian:bullseye-slim


VScodeでの開発で使用したコンテナイメージの扱い

VScode(ABOSDE)でコンテナを1度でもビルドすると、使用した元となるコンテナイメージビルドした
コンテナイメージ
はATDEに保存されます。
ATDEに保存されたコンテナイメージの表示は下記コマンドで見る事が出来ます。

[ATDE]$ podman images
REPOSITORY                TAG            IMAGE ID      CREATED      SIZE
docker.io/arm64v8/debian  bullseye-slim  1138224350f7  2 weeks ago  78.1 MB

以後、ATDEにある同名のコンテナイメージを使用してコンテナイメージをビルドすると、ATDEに
保存されているイメージが優先的に使用
されます。

コンテナイメージを入れ替えたい場合はATDE内にあるコンテナイメージを削除してからビルドを
実行すると、最新のイメージがダウンロードされ、ビルド出来ます。

コンテナイメージの消し方

コンテナイメージを消すコマンド
[ATDE]$ podman rmi docker.io/arm64v8/debian:bullseye-slim

同名のコンテナイメージが無い場合は下記でも可能
[ATDE]$ podman rmi debian:bullseye-slim

同じIDのコンテナイメージが無い場合はIDでも可能(podman images で表示される IMAGE ID)
[ATDE]$ podman rmi 1138224350f7   //(被りがなければ先頭1~3文字程度でも可)

以上となります。