Como fazer login no Docker Hub e registros privados com o Docker CLI

Uma nova instalação do Docker assume como padrão as interações públicas com o Docker Hub. O login permite que você acesse seu conteúdo privado e se beneficie de limites de taxa de API do Docker menos restritivos.

Neste guia, mostraremos como fazer login na CLI do Docker, abrangendo a autenticação do Docker Hub e seus próprios registros privados. Também veremos alguns dos problemas comuns com o armazenamento de credenciais do Docker.

índice

  1. Entrar no Docker Hub
  2. Tokens de acesso para logins 2FA
  3. Logins não interativos
  4. Fazer login em registros privados
  5. Adição manual de credenciais
  6. Várias contas para um registro
  7. Auxiliares de credenciais
  8. Saindo da sua conta
  9. Problemas comuns
  10. Resumo

Entrar no Docker Hub

Fazer login no Docker Hub permite que a CLI do Docker acesse conteúdo privado que sua conta pode acessar. Ele também fornecerá o limite de taxa mais alto de 200 pulls de imagem por seis horas, em vez dos 100 pulls por seis horas oferecidos a clientes não autenticados.

Use o comando docker login para fornecer suas credenciais e autenticar com o servidor:

 $ docker login Nome de usuário: Senha:

Você será solicitado a inserir seu nome de usuário e senha de forma interativa. O Docker tentará fazer login no Docker Hub com as credenciais. Vers Login Succeeded -sucedido se os detalhes forem aceitos. O Docker armazenará o token de autenticação emitido em seu arquivo .docker/config.json .

 $ login docker Login bem sucedido

Tokens de acesso para logins 2FA

As contas do Docker Hub com autenticação de dois fatores habilitada devem usar um token de acesso em vez de uma senha. Usando a interface do usuário da Web do Docker Hub, clique no ícone do seu perfil no canto superior direito e escolha "Configurações da conta" no menu. Use a barra lateral esquerda para alternar para a guia "Segurança".

Clique no botão azul "Novo Token de Acesso" para criar um token de acesso pessoal. Tenha o cuidado de anotar a chave do token exibido, pois você não poderá recuperá-lo no futuro. Use esse token em vez de sua senha usual ao executar o docker login novamente na CLI.

Logins não interativos

Você pode fornecer seu nome de usuário e senha como prompts de linha de comando:

 $ docker login --username demo --password example

Isso é útil quando você faz logon programaticamente ou como parte de um pipeline de CI. Para aumentar a segurança, use o sinalizador --password-stdin para dizer ao Docker para ler sua senha de STDIN . Isso permite que você canalize um arquivo de senha, o que impede que o texto simples seja capturado no histórico do shell e nos logs de trabalho do CI.

 $ cat senha.txt | docker login --username demo --password-stdin

Fazer login em registros privados

docker login também permite que você faça login em registros auto-hospedados. Forneça o nome do host e a porta do seu registro como o primeiro argumento para o comando. O Docker Hub é sempre usado quando nenhum argumento é fornecido.

 $ docker login registry.example.com Nome de usuário: Senha:

Você ainda pode usar os --username , --password e --password-stdin ao trabalhar com registros personalizados. Você pode fazer login em vários registros simultaneamente: repita o comando docker login quantas vezes precisar.

Adição manual de credenciais

Às vezes, você pode querer fazer login manualmente em um registro adicionando um token de autenticação existente ao arquivo de configuração do Docker. Isso pode ser útil em ambientes de CI em que você deseja fornecer um token pré-buscado como uma variável de canal.

Você mesmo pode adicionar tokens de autenticação editando seu arquivo .docker/config.json . Adicione uma nova chave para seu registro no campo auths na parte superior do arquivo. Forneça um objeto como o valor da chave; esse objeto precisa de uma única propriedade de auth que contenha seu token. Aqui está um exemplo para o registry.example.com :

 { "auths": { "registry.example.com": { "auth": "aWxtaW9ud..." } } }

Você pode adicionar um token do Docker Hub usando https://index.docker.io/v1/ como a URL de registro.

Várias contas para um registro

Uma limitação significativa do mecanismo de autenticação é sua exigência de que os registros sejam mapeados individualmente com contas de usuário. Nativamente, não é possível efetuar login simultaneamente em vários usuários no mesmo registro. Isso geralmente é conveniente ao usar um registro privado que separa as permissões entre projetos ou equipes.

Você pode atenuar o problema dividindo suas credenciais em vários arquivos de configuração. A CLI do Docker usa o sinalizador --config ou a variável de ambiente DOCKER_CONFIG para determinar o arquivo a ser carregado para cada invocação.

 # Autenticar como user-1 $ docker --config ~/docker/user-1.conf login registry.example.com --username user-1 --password foobar # Autenticar como user-2 $ docker --config ~/docker /user-2.conf login registry.example.com --username user-2 --password foobar # Extraia uma imagem de registry.example.com como user-1 $ docker --config ~/docker/user-1.conf pull my-team/my-project:latest # Envia uma imagem para registry.example.com como user-2 $ docker --config ~/docker/user-2.conf push my-team/my-project:latest

Quando você tem muitos projetos para trabalhar, pode usar um alias de shell ou uma função para reescrever o docker em um comando que seleciona automaticamente o arquivo de configuração correto para seu diretório de trabalho.

 aliases docker="docker --config ~/docker/$(basename $PWD).conf $1"

Auxiliares de credenciais

O Docker armazena suas credenciais de forma insegura em ~/.docker/config.json por padrão. Você pode adicionar mais proteção integrando um utilitário auxiliar de credencial. Os auxiliares habilitados podem manipular os comandos credential store , get e erase emitidos pelo Docker em resposta às operações da CLI.

Você pode associar um registro a um utilitário auxiliar específico usando o campo credHelpers em seu arquivo de configuração:

 { "credHelpers": { "registry.example.com": "pass" } }

Este exemplo usa o auxiliar de credenciais de pass para armazenar credenciais para registry.example.com em Passar em vez do arquivo de configuração. O auxiliar Pass é fornecido como parte do pacote docker-credential-helpers do Docker, que também inclui integrações com as chaves do macOS, o Gerenciador de credenciais do Windows e o serviço secreto D-Bus.

Saindo da sua conta

Você pode fazer logout removendo manualmente a seção de registro do arquivo .docker/config.json ou usando o domínio de docker logout .

 $ docker logout

Assim como o docker login , ele desconecta a sessão de destino do Docker Hub por padrão. Você pode sair de um registro privado passando seu nome de host como o único argumento para o comando:

 $ docker logout registry.example.com

Problemas comuns

A maioria dos problemas de autenticação do Docker são causados ​​por credenciais ausentes ou inválidas. Se você tiver feito login anteriormente, mas a autenticação não funcionar, tente sair e entrar novamente:

 $ docker logout # OR $ docker logout registry.example.com $ docker login # OU $ docker login registry.example.com

Credenciais constantemente rejeitadas podem indicar um problema com sua conta de registro. Para o Docker Hub, verifique se você seguiu o guia acima para usar um token de acesso pessoal em vez de uma senha com contas protegidas por 2FA.

A confusão também pode ocorrer quando você tem vários arquivos de configuração do Docker. Verifique se você está usando o sinalizador --config ou a variável de ambiente DOCKER_CONFIG para carregar o correto toda vez que você enviar e receber suas imagens.

Resumo

Fazer com que a CLI do Docker se conecte à sua conta do Docker Hub ou a um registro privado geralmente é melhor tratado com o domínio de docker login . Você pode fornecer credenciais interativamente, como prompts ou por meio de um arquivo de senha canalizado. Certifique-se de usar um token de acesso pessoal em vez de sua senha se você tiver a autenticação de dois fatores ativada.

Embora haja suporte contínuo para autenticação em vários registros, trabalhar com várias contas de um registro é mais complicado. Tente usar arquivos de configuração separados sempre que possível ou configure seu registro com contas de usuário de escopo especial apropriadas para cada um de seus ambientes.

  • Quanto custa carregar um carro elétrico?
  • O que é conteúdo estático e como isso afeta seu site?

descubra mais conteúdo

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é a senha Stdin?

O uso de STDIN evita que a senha acabe no histórico do shell ou nos arquivos de log . O exemplo a seguir lê uma senha de um arquivo e a passa para o comando docker login usando STDIN: $ cat ~/my_password.txt | docker login -username foo -password-stdin.

Como obtenho credenciais de login do docker?

Para configurar a autenticação:

  1. Faça logon na máquina como o usuário que executará os comandos do Docker.
  2. Configure o Docker com o seguinte comando: docker-credential-gcr configure-docker. Suas credenciais são salvas no diretório inicial do usuário. Linux: $HOME/.docker/config.json. Windows: %USERPROFILE%/.docker/config.json.

Onde a senha do docker é armazenada?

Por padrão, o Docker armazena a senha de login não criptografada no diretório /root/. docker/config. json arquivo de configuração do Docker . Este é o comportamento padrão do Docker.

Como crio um nome de usuário e senha do docker?

Para criar um novo ID do Docker:

  1. Acesse a página de inscrição do Docker Hub.
  2. Digite um nome de usuário que se tornará seu ID do Docker.
  3. Insira um endereço de e-mail exclusivo e válido.
  4. Digite uma senha com pelo menos 9 caracteres.
  5. Conclua a verificação do Captcha e clique em Inscrever-se.
Ir arriba