我正在尝试更改图像的存储库名称:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
server latest d583c3ac45fd 26 minutes ago 685.5 MB
因此,我想将名称server改为类似myname/server的名称:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myname/server latest d583c3ac45fd 26 minutes ago 685.5 MB
我该怎么做?
存储库和标签有什么区别?
@charlieparker标记通常用于存储库的版本,例如,带有标记10.1的repository mariadb
遵循docker标签中的语法--help命令如下:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]。
docker tag server:latest myname/server:latest
或
docker tag d583c3ac45fd myname/server:latest
标签只是完整图像名称的人类可读别名(d583c3ac45fd...)。
因此,您可以将它们中的任意多个与您喜欢的相同图像关联起来。如果您不喜欢旧名称,可以在重新标记后将其删除:
docker rmi server
这只会删除alias/tag。由于d583c3ac45fd有其他名称,实际图像不会被删除。
这对我不起作用。当我运行docker tag myname/server:latest docker时,它认为适合prepend docker.io,所以图像标签最终是docker.io/myname/server:latest。
你的主机操作系统和Docker版本是什么?我怀疑关于你的Docker安装的一些东西正在修改标记指令。
我还发现,如果图像名称只有一个标签,那么省略:latest就可以了。但在docker images的输出中,图像名称为REPOSITORY(而不是图像),而需要用一个名为tag的命令重命名,而tag在该输出中是一个单独的列,这是非常特殊的。我希望他们能清理掉这些和其他相关的东西…
请注意,您可能需要docker image tag from_server:version to_server:version,如下所述:docs.docker.com/engine/reference/commandline/image_tag
作为速记,您可以运行:
docker tag d58 myname/server:latest
其中d58表示图像ID的前3个字符,在本例中,这就是您所需要的全部内容。
最后,可以删除旧图像,如下所示:
docker rmi server
在我的例子中,使用完整的ID不知何故会附加:最新的附加到它的末尾,并给出一个错误,声称它找不到它。前三个字母的效果要好得多。(即,docker tag d583c3ac45fd myname/server:latest不起作用,而docker tag d58 myname/server:latest起作用。)
Docker标记当前图像名称所需图像名称
当然,这是可行的,但你还没有向这个人解释原因。他们似乎对什么是码头工人标签感到困惑…假设他们知道如何使用docker-h
最近我不得不将一些图像从Docker注册表(docker.mycompany.com)迁移到artifactory(docker.artifactory.mycompany.com)。
docker pull docker.mycompany.com/something/redis:4.0.10
docker tag docker.mycompany.com/something/redis:4.0.10 docker.artifactory.mycompany.com/something/redis:4.0.10
docker push docker.artifactory.mycompany.com/something/redis:4.0.10
docker run-it--name新名称现有名称
更改现有图像名称。
创建具有新名称的容器。图像名称没有任何变化。