什么是<;无>;存储库和标签?为什么在我使用docker build时会出现它们?

什么是<;无>;存储库和标签?为什么在我使用docker build时会出现它们?,docker,Docker,这是在运行docker build之前,docker images显示的内容 $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE myapp latest a38da0bd9e0b 6 seconds ago 523.8 MB golang

这是在运行
docker build
之前,
docker images
显示的内容

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
myapp               latest              a38da0bd9e0b        6 seconds ago       523.8 MB
golang              onbuild             b4997c557048        10 days ago         517.2 MB
在我对
myapp
源代码做了一些更改之后,我运行了
docker build-t myapp.
,最后得到了名为
的图像

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED                      VIRTUAL SIZE
myapp               latest              a38da0bd9e0b        Less than a second ago ago   523.8 MB
<none>              <none>              e4209f97e819        10 minutes ago               523.8 MB
golang              onbuild             b4997c557048        10 days ago                  517.2 MB

如果将标记或图像名称重新指定给其他图像,则图像将丢失其标记或名称。就这么简单。您的
myapp
repo图像使用ID
a38da0bd9e0b
标记为
latest
,您可以执行类似于
docker tag e4209f97e819 myName/myapp:latest
的操作,并且它将被标记,但请记住,如果另一个图像具有相同的标记,您可以取消标记。有关标记的详细信息。祝你好运当您试图用包含大写字母的内容命名图像时,似乎也会出现此问题。例如,我使用docker build-t myname/NewImage:0.1构建了一个映像。这导致我的图像具有repo和标记。您多次使用
docker build-t myname/NewImage:0.1创建图像。
。第一次这样做时,它会创建一个标记为
myname/NewImage:0.1
的图像。第二次执行此操作时,它将创建一个新图像,该图像将获得
myname/NewImage:0.1
标记,使您构建的第一个图像具有
标记。要删除这些图像,您需要删除具有正确repo和标记的最新图像。是吗?有没有一种方法可以在用新图像重建后自动删除以前创建的图像?
FROM golang:onbuild
EXPOSE 8080