Container

圖像可以回滾嗎?

  • April 8, 2022

如果我正在處理具有多個圖層的圖像,是否可以回滾到前一層或重置到圖像堆棧中的另一層?

圖像上的 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

顯然你不需要給圖像一個新的名字,你可以使用相同的名字。但請注意,當您這樣做時,您可能無法訪問已刪除的上層。

引用自:https://unix.stackexchange.com/questions/671883