Autenticar em um registro auto-hospedado com nome de usuário e senha
Nesta etapa, você aprenderá como se autenticar em um registro Docker auto-hospedado usando um nome de usuário e senha. Embora o Docker Hub seja o registro padrão, pode ser necessário interagir com registros privados hospedados dentro de sua organização ou em um provedor de nuvem.
Um registro auto-hospedado é um registro Docker que você configura e gerencia sozinho, em vez de usar um serviço público como o Docker Hub. Isso é frequentemente feito por motivos de segurança, conformidade ou desempenho.
Para se autenticar em um registro auto-hospedado, você usa o mesmo comando docker login, mas precisa especificar o endereço do registro. O formato é docker login <registry_address>.
Para este laboratório, simularemos um registro auto-hospedado. Usaremos um endereço de espaço reservado myregistry.local. Em um cenário real, este seria o nome de domínio ou endereço IP real do seu registro.
Abra seu terminal no diretório ~/project.
Para fazer login em nosso registro auto-hospedado simulado, execute o seguinte comando, substituindo your_registry_username e your_registry_password por credenciais hipotéticas que você usaria para esse registro:
docker login myregistry.local
Você será solicitado a inserir o nome de usuário e a senha para o registro myregistry.local:
Login with your Docker ID to push and pull images from myregistry.local. If you don't have a Docker ID, head over to https://hub.docker.com/ to create one.
Username: your_registry_username
Password: your_registry_password
Insira o nome de usuário e a senha hipotéticos. Como myregistry.local não é um registro real e em execução neste ambiente, o login provavelmente falhará com uma mensagem de erro indicando que o registro está inacessível ou que a autenticação falhou. Isso é esperado para esta simulação. A parte importante é entender a sintaxe do comando e o processo de especificação de um registro diferente.
Error response from daemon: Get "http://myregistry.local/v2/": dial tcp: lookup myregistry.local on 127.0.0.53:53: no such host
Embora o login tenha falhado porque o registro não existe, a sintaxe do comando docker login <registry_address> está correta para tentar se autenticar em um registro auto-hospedado.
Em um cenário real com um registro auto-hospedado em execução, um login bem-sucedido resultaria em uma mensagem "Login Succeeded", e suas credenciais para esse registro específico seriam armazenadas em seu arquivo de configuração do Docker (~/.docker/config.json).
Vamos examinar o arquivo de configuração do Docker para ver como as informações do registro são armazenadas.
cat ~/.docker/config.json
Você verá uma estrutura JSON. Após um login bem-sucedido no Docker Hub na etapa anterior, você deve ver uma entrada para https://index.docker.io/v1/. Se você tivesse feito login com sucesso em myregistry.local, veria uma entrada adicional para esse endereço de registro.
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "..."
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/..."
},
"credsStore": "desktop"
}
A seção auths contém informações de autenticação para diferentes registros nos quais você fez login. Cada chave em auths é o endereço do registro, e o valor contém os detalhes de autenticação.
Esta etapa demonstrou como especificar um endereço de registro auto-hospedado ao usar docker login.