h-yuusuke
2022年3月15日 10時42分
お世話になっております。
掲題の件について教えて頂きたいことがあります。
・コンテナイメージ「localhost/container1:1.0.0」と、「podman_partial_image」コマンドで作成した差分ファイルでアップデートされたコンテナイメージ「localhost/container1:1.0.1」が同時に存在する状態で、「podman rmi -f localhost/container1:1.0.0」コマンドを実行して古い方のコンテナイメージ(1.0.0の方)を削除した時、「-f」オプションにより新旧コンテナイメージで共通するコンテナイメージまで削除してしまうことはありますでしょうか?
もしあり得る場合、適切なコンテナイメージ削除コマンドは何でしょうか?
at_dominique.m…
2022年3月15日 11時40分
h-yuusukeさん、
お世話になっています。
答える前に、運用の時のイメージの管理について説明します。(podman_switch_storage --diskしてpodman image load/rmを使わないで、swuでイメージを配信する管理のこと)
アップデートの際に、以下のステップで更新します:
- podman のイメージディレクトリをコピーします("snapshot"なので、容量に影響がありません。その時に前のバージョンのコピーも消します。)
- swuの中身をインストールします
- /etc/atmark/containers/*.conf に使われてないイメージがあれば、podman image untagで名前を外します。コンフィグファイルがない場合に何も消しません。
- podman image pruneで名前のないイメージを消します。
なので、普段 swu でアップデートを行っていれば:
- ロールバックの際に古いイメージを使えます、
- 必要ないイメージが自動的に消されますので、今回の例の場合はcontainer1:1.0.0にだけあった部分が消されます。
そのプロセスに何か不満なところがあれば教えてください。
> ・コンテナイメージ「localhost/container1:1.0.0」と、「podman_partial_image」コマンドで作成した差分ファイルでアップデートされたコンテナイメージ「localhost/container1:1.0.1」が同時に存在する状態で、「podman rmi -f localhost/container1:1.0.0」コマンドを実行して古い方のコンテナイメージ(1.0.0の方)を削除した時、「-f」オプションにより新旧コンテナイメージで共通するコンテナイメージまで削除してしまうことはありますでしょうか?
ないです。コンテナのイメージは layers で管理されて、必要がなくなった layer だけが消されます。
(podman image rm の -f はただ "image is in use by a container" に対してそのコンテナを終了させてからの処理です)
具体的なイメージで説明した方がわかりやすいと思います:
よろしくお願いします。