使用--tag的Docker构建命令无法标记图像

Har*_*hil 12 docker dockerfile docker-build

我试图使用本地可用的Dockerfile构建Docker镜像.

docker build -t newimage .
Run Code Online (Sandbox Code Playgroud)

我之前也多次使用过这个命令,但不知何故它现在不能正常工作,我找不到它的原因.

如果有人可以帮助我寻找可能的解决方案或可能的区域来寻找问题,我将会非常有帮助.

我已经查看了其他可能与之相关的帖子: Docker构建标记存储库名称

Har*_*hil 17

好的!我发现了问题的原因.

DOCKER BUILD PROCESS

当我们构建一个泊坞窗图像时,在创建图像的过程中会生成其他几个中间图像.我们从来没有看到它们,docker images因为随着下一个中间图像的生成,早期的图像被删除.最后我们只有一个是最终的图像.

我们提供的标签-t--tag用于最终构建的标签,显然没有中间容器标记有相同的标签.

问题解释

当我们尝试使用Dockerfile构建docker镜像时,有时会使用类似的消息成功完成该过程 Successfully built image with IMAGEID

所以很明显,失败的构建将不会被列入 docker images

现在,带有标签的图像<none>是其他图像(中间).这会造成图像存在但没有标记的混淆,但图像实际上不是最终构建应该是什么,因此没有标记.

  • 不,没有这样的消息!我在命令中打了一个错字,所以有一个日志说命令返回非零输出,`/bin/sh: 1: s: not found 命令'/bin/sh -cs'返回一个非零代码: 127 ` 类似这样的东西 .. 但是没有来自 Docker 守护进程的错误消息。 (2认同)
  • 同样的事情发生在我身上,使用 docker: Docker version 18.09.5, build e8ff056 我是这样解决的:docker tag IMAGE_ID MY_TAG (2认同)