[英]How upgrade a docker image without creating new image?
这似乎是我找不到答案的最简单的问题。
docker images
显示它存在。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.