ブログ

Podmanでreadonlyのコンテナイメージを作成・削除する方法

at_shiita.ishigaki
2022年6月9日 9時03分

SWUpdateを使ってPodmanのコンテナイメージをeMMCに保存した場合、readonlyとして保存されます。
readonlyのコンテナイメージを作成・削除を行う場合はabos-ctrl podman-rwコマンドを使用します。

abos-ctrl podman-rwの使い方を以下に示します。

[armadillo ~]# abos-ctrl podman-rw --help
Usage: abos-ctrl podman-rw <podman command>
 
Examples:
  abos-ctrl podman-rw image list
  abos-ctrl podman-rw rmi docker.io/alpine
  abos-ctrl podman-rw pull docker.io/alpine
  abos-ctrl podman-rw load -i container.tar

SWUpdate以外の方法でreadonlyのコンテナイメージを作成する場合はabos-ctrl podman-rw pullコマンドを使用します。

[armadillo ~]# abos-ctrl podman-rw pull docker.io/alpine
Trying to pull docker.io/library/alpine:latest...
Getting image source signatures
…
…
Writing manifest to image destination
Storing signatures
6e30ab57aeeef1ebca8ac5a6ea05b5dd39d54990be94e7be18bb969a02d10a3f

比較として、readonlyではないbusyboxのコンテナイメージを用意します。

[armadillo ~]# podman pull docker.io/busybox
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
…
…
Writing manifest to image destination
Storing signatures
3c19bafed22355e11a608c4b613d87d06b9cdd37d378e6e0176cbc8e7144d5c6

readonlyのコンテナイメージ一覧を確認するには、podman image listコマンドか、abos-ctrl podman-rw image listコマンドを使用します。
※image listの部分はimagesでも同様の結果が得られます。
podman imagesコマンドの場合、readonlyのコンテナイメージもそうではないコンテナイメージも表示され、R/Oの列でreadonlyかどうか確認することができます。
abos-ctrl podman-rw listコマンドの場合は、readonlyのコンテナイメージのみ表示されます。

[armadillo ~]# podman image list
REPOSITORY                 TAG         IMAGE ID      CREATED      SIZE        R/O
docker.io/library/busybox  latest      3c19bafed223  24 hours ago  1.64 MB     false    #R/Oがfalseとなっている
docker.io/library/alpine   latest      6e30ab57aeee  2 weeks ago  5.56 MB     true    #R/Oがtrueとなっている
[armadillo ~]# abos-ctrl podman-rw image list
REPOSITORY                TAG         IMAGE ID      CREATED      SIZE
docker.io/library/alpine  latest      6e30ab57aeee  2 weeks ago  5.56 MB    #readonlyのコンテナイメージのみ表示される

readonlyのコンテナイメージを削除する場合は、abos-ctrl podman-rw rmiコマンドを使用します。

[armadillo ~]# podman rmi docker.io/alpine
Error: cannot remove read-only image "6e30ab57aeeef1ebca8ac5a6ea05b5dd39d54990be94e7be18bb969a02d10a3f"    #podman rmiコマンドの場合は削除できない
[armadillo ~]# abos-ctrl podman-rw rmi docker.io/alpine
Untagged: docker.io/library/alpine:latest
Deleted: 6e30ab57aeeef1ebca8ac5a6ea05b5dd39d54990be94e7be18bb969a02d10a3f