簡體   English   中英

如何在不創建新映像的情況下升級 docker 映像?

[英]How upgrade a docker image without creating new image?

這似乎是我找不到答案的最簡單的問題。

  1. 我構建了一個 docker 圖像。
  2. 運行docker images顯示它存在。
  3. 然后我在 Docker 文件中添加一個新行。
  4. 然后我重建圖像。
  5. 舊圖像仍在docker images中,現在有一個新圖像。

如何簡單地更新舊圖像而不創建新圖像?

我的 docker 命令: docker build -t nick_app. --force-rm --no-cache docker build -t nick_app. --force-rm --no-cache

(注意:我只是扔掉了那些 --force-rm 命令和 --no-cache 命令',因為它似乎可以工作。)

前:

Dockerfile:

FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y
CMD ["echo", "Sup"]

docker 圖像命令:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nick_app            latest              421662154c3f        9 minutes ago       746.9 MB
ruby                2.3.3               d00ebde6a601        2 days ago               730.1 MB
hello-world         latest              c54a2cc56cbb        4 months ago          1.848 kB

之后:Dockerfile:

FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y \
   build-essential
CMD ["echo", "Sup"]

docker 圖像命令:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nick_app            latest              bcf9b3667202        3 seconds  ago       746.9 MB
<none>              <none>              421662154c3f        10 minutes ago      746.9 MB
ruby                2.3.3               d00ebde6a601        2 days ago          730.1 MB
hello-world         latest              c54a2cc56cbb        4 months ago        1.848 kB

我所做的每一次 dockerfile 更改都會在重建時創建一個新的none圖像。 它們是累積的,所以每次我進行更改和重建時,我都會得到另一個none圖像。

每次我進行none更改時,如何擺脫中間值?

那些<none>:<none>實際上是你的應用程序的舊版本,它丟失了它的命名指針,因為你將nick_app:latest移動到了你的新版本。

在構建圖像時,我認為你不能告訴它破壞舊圖像,它只會創建一個新圖像。 但是有一個命令可以幫助您列出或刪除那些懸空圖像:

docker images --filter dangling=true #lists all images that are dangling and has no pointer to it
docker rmi `docker images --filter dangling=true -q` #Removes all those images.

您可以使用:

docker build -t nick_app . --force-rm --no-cache && docker image prune -a --force

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM