我在构建图像后看到docker tag ...
和docker push ...
的用法。在使用本地注册表时,人们通常在两个命令中都包含注册表主机地址。这实际上是必要的吗?澄清码头标签和码头推送命令
更多细节和我的想法
从man docker-tag
:
docker tag [-f|--force[=false]] [--help] IMAGE[:TAG] [REGISTRY_HOST/][USERNAME/]NAME[:TAG]
为什么我们要提供
REGISTRY_HOST
标记是什么时候?据我所知,在做标记时,docker守护程序不会与注册表进行通信。所以我想整个
[REGISTRY_HOST/]USERNAME/]NAME
是一个命名建议,当我们在做docker ps
时,它将被解释为单个REPOSITORY
字符串。
从man docker-push
:
docker push [--help] NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]
如果我们已经标记的图像与登记册主机和用户名等,为什么我们需要在
push
中提供它们?由于push与注册表进行通信,我认为
REGISTRY_HOST[:REGISTRY_PORT]/]
实际上被解析,并且NAME
可能在tag命令中引用[USERNAME/]NAME
。这里忽略[REGISTRY_HOST/]
的tag
。
我完全猜测tag
和push
是如何工作的。请指出我是否有错,并详细解释。