Como os nomes das imagens do Docker são analisados?

Ao fazer umdocker push ou ao extrair uma imagem, como o Docker determina se existe um servidor de registro no nome da imagem ou se é um caminho / nome de usuário no registro padrão (por exemplo, Docker Hub)?

Estou vendo o seguinte no1.1 especificação de imagem:

Etiqueta, rótulo, palavra-chave

Uma tag serve para mapear um nome descritivo fornecido pelo usuário para qualquer ID de imagem único. Os valores das tags são limitados ao conjunto de caracteres [a-zA-Z_0-9].

Repositório

Uma coleção de tags agrupadas sob um prefixo comum (o componente name antes :). Por exemplo, em uma imagem marcada com o nome my-app: 3.1.4, my-app é o componente Repositório do nome. Um nome de repositório é composto de componentes de nome separados por barra, opcionalmente prefixados por um nome de host DNS. O nome do host deve seguir a conformidade com as regras DNS padrão, mas não pode conter _ caracteres. Se um nome de host estiver presente, ele pode opcionalmente ser seguido por um número de porta no formato: 8080. Os componentes de nome podem conter caracteres minúsculos, dígitos e separadores. Um separador é definido como um ponto, um ou dois sublinhados ou um ou mais traços. Um componente de nome pode não iniciar ou terminar com um separador.

Para o nome do host DNS, ele precisa ser totalmente qualificado com pontos ou "my-local-server" é um nome de host do registro válido? Para os componentes de nome, estou vendo períodos válidos, o que implica que "team.user / appserver" é um nome de imagem válido. Se o servidor de registro estiver em execução na porta 80 e, portanto, nenhum número de porta for necessário no nome do host no nome da imagem, parece que haveria ambiguidade entre o nome do host e o caminho no servidor de registro. Estou curioso para saber como o Docker resolve essa ambiguidade.

questionAnswers(2)

yourAnswerToTheQuestion