这似乎是最简单的问题,我无法找到答案.
docker images表明它存在.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"]
Run Code Online (Sandbox Code Playgroud)
docker images命令:
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
Run Code Online (Sandbox Code Playgroud)
之后:Dockerfile:
FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y \
build-essential
CMD ["echo", "Sup"]
Run Code Online (Sandbox Code Playgroud)
docker images命令:
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
Run Code Online (Sandbox Code Playgroud)
我创建的每个dockerfile更改都会none在rebuild上创建一个新图像.它们是累积的,所以每当我做出改变并重建时,我都会得到另一个none图像.
none每次我更改dockerfile时,如何摆脱那个中间体?
这些<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.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2438 次 |
| 最近记录: |