Como usar o comando docker logout para sair de um registro

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como usar o comando docker logout para sair de forma segura de registros Docker. Começaremos entendendo o propósito do comando docker logout e por que é importante remover credenciais salvas. Em seguida, exploraremos como sair do registro Docker padrão (Docker Hub) e, finalmente, como sair de um registro específico, não padrão. Este laboratório prático irá guiá-lo pelos passos práticos para gerenciar suas sessões de login no registro Docker.

Entenda o propósito do docker logout

Nesta etapa, entenderemos o propósito do comando docker logout. Quando você faz login em um registro Docker usando o comando docker login, suas credenciais são salvas em seu sistema. Isso permite que você envie (push) e puxe (pull) imagens do registro sem precisar reinserir seu nome de usuário e senha a cada vez. No entanto, por razões de segurança, especialmente em ambientes compartilhados ou após concluir seu trabalho, é importante sair do registro. O comando docker logout é usado para remover essas credenciais salvas.

Vamos primeiro verificar se você está atualmente logado em algum registro Docker. Você pode fazer isso tentando puxar uma imagem que requer autenticação, ou verificando o arquivo de configuração onde o Docker armazena as credenciais. O local padrão para a configuração do Docker é ~/.docker/config.json.

Você pode visualizar o conteúdo deste arquivo usando o comando cat:

cat ~/.docker/config.json

Se você estiver logado, verá uma seção como "auths": { ... } contendo informações sobre os registros nos quais você está logado e credenciais criptografadas. Se você não estiver logado, a seção auths pode estar vazia ou ausente.

O comando docker logout é simples. Quando executado sem nenhum argumento, ele faz logout do registro Docker padrão, que normalmente é o Docker Hub.

Vamos simular um login (não faremos login aqui, pois o foco é entender o logout) e, em seguida, entender como o docker logout funcionaria. Imagine que você acabou de executar docker login. Seu arquivo ~/.docker/config.json seria atualizado com suas informações de login.

Agora, para sair do registro padrão (Docker Hub), você simplesmente executaria:

docker logout

Após executar este comando, o Docker removerá as credenciais do registro padrão do seu arquivo ~/.docker/config.json. Isso significa que você precisará fazer login novamente para enviar ou puxar imagens do Docker Hub que exigem autenticação.

Nas próximas etapas, realizaremos as operações de login e logout para ver o efeito do comando docker logout.

Sair do registro padrão

Nesta etapa, praticaremos a saída do registro Docker padrão, que é o Docker Hub. Embora não tenhamos feito login explicitamente neste ambiente de laboratório, o comando docker logout foi projetado para remover as credenciais existentes. Executar docker logout quando não estiver logado resultará em uma mensagem indicando que você não está logado. Este é o comportamento esperado e confirma que o comando está funcionando corretamente para verificar e potencialmente remover as credenciais.

Primeiro, vamos tentar sair do registro padrão. Abra seu terminal no diretório ~/project e execute o seguinte comando:

docker logout

Você deve ver uma saída semelhante a esta:

Not logged in to any registry

Esta mensagem confirma que não havia credenciais salvas para o registro padrão (Docker Hub) em seu arquivo ~/.docker/config.json. Se você estivesse logado, a saída indicaria um logout bem-sucedido.

Para entender melhor o efeito de docker logout, vamos examinar o arquivo ~/.docker/config.json novamente após tentar sair.

cat ~/.docker/config.json

Você observará que a seção auths, se existisse e contivesse credenciais para o registro padrão, agora estaria vazia ou a entrada para https://index.docker.io/v1/ seria removida. Como não estávamos logados, o conteúdo do arquivo deve permanecer o mesmo de antes, provavelmente com uma seção auths vazia ou ausente.

Esta etapa demonstra o uso básico de docker logout sem nenhum argumento, que visa o registro Docker Hub padrão. Na próxima etapa, exploraremos como sair de um registro específico, não padrão.

Sair de um registro específico

Nesta etapa, aprenderemos como sair de um registro Docker específico, diferente do Docker Hub padrão. Isso é útil quando você está trabalhando com vários registros, como um registro privado da empresa ou o registro de contêineres de um provedor de nuvem.

Para sair de um registro específico, você precisa fornecer o nome do host (hostname) do registro como um argumento para o comando docker logout.

Como não temos um registro privado específico configurado neste laboratório, usaremos um exemplo hipotético para demonstrar a sintaxe do comando. Imagine que você estivesse logado em um registro localizado em my-private-registry.example.com. Para sair deste registro específico, você usaria o seguinte comando:

docker logout my-private-registry.example.com

Quando você executa este comando, o Docker procurará as credenciais associadas a my-private-registry.example.com em seu arquivo ~/.docker/config.json e as removerá. Se você não estivesse logado nesse registro específico, o Docker o informaria.

Vamos simular isso tentando sair de um registro inexistente. Isso mostrará a estrutura do comando e a saída esperada quando o registro não for encontrado em sua configuração.

docker logout non-existent-registry.example.com

Você provavelmente verá uma saída semelhante a esta:

Not logged in to non-existent-registry.example.com

Esta mensagem confirma que o Docker tentou encontrar e remover as credenciais para non-existent-registry.example.com, mas não encontrou nenhuma.

A capacidade de sair de registros específicos é importante para gerenciar o acesso a diferentes fontes de imagem e manter a segurança, removendo credenciais salvas desnecessárias.

Para resumir, docker logout sem argumentos faz logout do Docker Hub padrão, enquanto docker logout <registry-hostname> faz logout de um registro específico.

Resumo

Neste laboratório, aprendemos o propósito do comando docker logout, que é essencial para remover as credenciais salvas do registro Docker por motivos de segurança. Entendemos que, após fazer login com docker login, as credenciais são armazenadas em ~/.docker/config.json. Aprendemos como verificar este arquivo para ver se estamos logados.

Em seguida, focamos no próprio comando docker logout. Aprendemos que executar docker logout sem argumentos faz logout do registro Docker padrão (Docker Hub) removendo suas credenciais do arquivo de configuração. Isso garante que as operações subsequentes que exigem autenticação com o registro padrão necessitarão de um novo login.