Container
圖像可以回滾嗎?
如果我正在處理具有多個圖層的圖像,是否可以回滾到前一層或重置到圖像堆棧中的另一層?
圖像上的 podman 等價物是
git reset --hard HEAD^
什麼?
如果我理解您的要求…您正在使用 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
顯然你不需要給圖像一個新的名字,你可以使用相同的名字。但請注意,當您這樣做時,您可能無法訪問已刪除的上層。