gpt4 book ai didi

docker - 如何在不创建新镜像的情况下升级 docker 镜像?

转载 作者:IT老高 更新时间:2023-10-28 21:36:02 26 4
gpt4 key购买 nike

这似乎是我找不到答案的最简单的问题。

  1. 我构建了一个 docker 镜像。
  2. 运行 docker images 表明它存在。
  3. 然后我在 Docker 文件中添加一个新行。
  4. 然后我重建图像。
  5. 旧图像仍在 docker images 中,现在有一个新图像。

如何简单地更新旧图像而不创建新图像?

我的 docker 命令: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 图像。

每次我对 dockerfile 进行更改时,如何摆脱中间的 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 - 如何在不创建新镜像的情况下升级 docker 镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40791386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com