我正在尝试使用本地可用的Dockerfile构建Docker镜像。
docker build -t newimage .
我之前多次使用过这个命令,但现在它不起作用了,我被困在找出原因的过程中。
如果有人能帮我找到可能的解决方案或问题可能存在的区域,那将非常有帮助。
我已经查看了其他可能相关的帖子,例如: Docker build tag repository name
我正在尝试使用本地可用的Dockerfile构建Docker镜像。
docker build -t newimage .
我之前多次使用过这个命令,但现在它不起作用了,我被困在找出原因的过程中。
如果有人能帮我找到可能的解决方案或问题可能存在的区域,那将非常有帮助。
我已经查看了其他可能相关的帖子,例如: Docker build tag repository name
/bin/sh: 1: s: not found The command '/bin/sh -c s' returned a non-zero code: 127
之类的东西...但是Docker守护程序没有出现错误消息。 - HarshilRUN npm start
改为 CMD ["npm", "start"]
,现在正在标记。我想说的是,Docker 没有任何问题。
一个镜像可以有多个标签:
alpine 3.4 4e38e38c8ce0 6 weeks ago 4.799 MB
alpine latest 4e38e38c8ce0 6 weeks ago 4.799 MB
4e38e38c8ce0
的图像被标记为alpine:latest
和alpine:3.4
。如果您执行docker build -t alpine .
,则latest
标签将从图像4e38e38c8ce0
中删除,并分配给新构建的图像(具有不同的ID)。tag
,则该图像不会自动删除。它会显示为<none>
。<none>
。docker build -t
tag:version
image:tag .
,其中version
tag
每次进行更改时都会更改。
编辑: 我所说的标签实际上是图像名称,我所说的版本被称为标签:https://docs.docker.com/engine/reference/commandline/tag/
docker build
命令的输出以及docker images
。 - Martin针对这种情况的一种解决方法是,在构建命令之后立即运行以下命令,如果所有其他图像已经被标记。
docker tag $(docker image ls | grep "<none>" | awk '{print $3}') newimage:latest
据我所知,这只能在Linux操作系统中运行。
docker images
命令时,没有带有这个标签的镜像,而是有一个被标记为<none>
的镜像。 - HarshilDockerfile
(或对其进行了更改)。Docker不会删除容器,它只会删除标签,导致出现<none>
。 - Martindocker build -t newimage .
命令,现在只有一个图像可用于运行docker images
,并且该图像的标记为<none>
。 - Harshil