複数のレイヤーで画像を操作する場合は、前のレイヤーにロールバックしたり、イメージスタックの他のレイヤーにリセットしたりできますか?
git reset --hard HEAD^
画像のPodmanと同等のものは何ですか?
答え1
私が質問したことを私が理解しているなら... podmanを使用していて、複数のレイヤーを含む画像がある場合...効果的に前のレイヤーにロールバックしたいと思います。
Gitと同様に、Podmanイメージ名はイメージIDへの参照にすぎず、各イメージレイヤーには独自のIDが必要です。
コマンドを使用して画像レイヤーを表示してから、選択したpodman history
レイヤーにラベルを追加できますpodman tag
。
たとえば、Containerfileで始まる場合:
FROM ubuntu:latest
RUN echo hello
RUN echo goodbye
RUN echo something else
次に、次のようにビルドします。
podman build . -t foo
その後、履歴を見ることができます。
podman history foo
ID CREATED CREATED BY SIZE COMMENT
4eb0380df1fc 6 seconds ago /bin/sh -c echo something else 1.02 kB FROM localhost/foo:latest
aedc2b11640a About a minute ago /bin/sh -c echo goodbye 1.02 kB FROM localhost/foo:latest
6782b9a36ab3 4 minutes ago /bin/sh -c echo hello 2.05 kB FROM docker.io/library/ubuntu:latest
825d55fb6340 2 days ago /bin/sh -c #(nop) CMD ["bash"] 0 B
<missing> 2 days ago /bin/sh -c #(nop) ADD file:b83df51ab7caf8a... 75.1 MB
その後、サブレイヤーを表示できます。
podman tag 6782b9a36ab3 bar
bar
これにより、実際に画像の下位(前の)レイヤーである画像を使用できますfoo
。
podman run -it --rm bar
明らかに、イメージに新しい名前を付ける必要はなく、同じ名前を使用できます。ただし、これを行うと、削除された上位レイヤーにアクセスできなくなる可能性があります。