Como fazer login no Docker Hub e nos registros privados com a CLI do Docker
Uma nova instalação do Docker é padronizada para 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.
Fazendo login no Docker Hub
Fazer login no Docker Hub permite que a CLI do Docker acesse o conteúdo privado acessível à sua conta. 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 docker login
comando para fornecer suas credenciais e autenticar com o servidor:
$ docker login Username: Password:
Você será solicitado a inserir seu nome de usuário e senha de forma interativa. O Docker tentará fazer login no Docker Hub usando as credenciais. Você vai ver Login Succeeded
se os detalhes forem aceitos. O Docker armazenará o token de autenticação emitido em seu .docker/config.json
Arquivo.
$ docker login Login Succeeded
Tokens de acesso para logins 2FA
As contas do Docker Hub com autenticação de dois fatores habilitada precisam usar um token de acesso em vez de uma senha. Usando a interface do usuário da internet do Docker Hub, clique no ícone do seu perfil no canto awesome 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. Tome cuidado para anotar a chave de token exibida, pois você não poderá recuperá-la no futuro. Use este token em vez de sua senha standard ao executar docker login
de volta na CLI.
Logins não interativos
Você pode fornecer seu nome de usuário e senha como sinalizadores de linha de comando:
$ docker login --username demo --password instance
Isso é útil quando você está fazendo login programaticamente ou como parte de um pipeline de CI. Para aumentar a segurança, use o --password-stdin
sinalizador para instruir o Docker a ler sua senha de STDIN
. Isso permite que você insira um arquivo de senha, evitando que o texto simples seja capturado em seu histórico de shell e logs de trabalho de CI.
$ cat password.txt | docker login --username demo --password-stdin
Entrando 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 do comando. O Docker Hub é sempre usado quando nenhum argumento é fornecido.
$ docker login registry.instance.com Username: Password:
Você ainda pode usar o --username
, --password
e --password-stdin
sinalizadores ao trabalhar com registros personalizados. Você pode estar conectado a vários registros simultaneamente – repita o docker login
comandar quantas vezes precisar.
Adicionando credenciais manualmente
À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é-obtido como uma variável de pipeline.
Você mesmo pode adicionar tokens de autenticação editando seu .docker/config.json
Arquivo. Adicione uma nova chave para o seu registro no auths
campo no topo do arquivo. Forneça um objeto como valor da chave; este objeto precisa de um único auth
propriedade que contém seu token. Aqui está um exemplo para o registry.instance.com
registro:
"auths": "registry.instance.com": "auth": "aWxtaW9ud..."
Você pode adicionar um token do Docker Hub usando https://index.docker.io/v1/
como a URL do registro.
Várias contas para um registro
Uma limitação significativa do mecanismo de autenticação é sua exigência de que os registros mapeiem um a um com contas de usuário. Não é possível fazer login simultaneamente em vários usuários no mesmo registro. Isso geralmente é desejável quando você está usando um registro privado que separa as permissões em projetos ou equipes.
Você pode atenuar o problema dividindo suas credenciais em vários arquivos de configuração. A CLI do Docker u.s. o --config
bandeira ou DOCKER_CONFIG
variável de ambiente para determinar o arquivo a ser carregado para cada chamada.
# Authenticate as user-1 $ docker --config ~/docker/user-1.conf login registry.instance.com --username user-1 --password foobar # Authenticate as user-2 $ docker --config ~/docker/user-2.conf login registry.instance.com --username user-2 --password foobar # Pull a picture from registry.instance.com as user-1 $ docker --config ~/docker/user-1.conf pull my-team/my-project:newest # Push a picture to registry.instance.com as user-2 $ docker --config ~/docker/user-2.conf push my-team/my-project:newest
Quando você tem muitos projetos para trabalhar, pode usar um alias ou função do shell para reescrever docker
para um comando que seleciona automaticamente o arquivo de configuração correto para seu diretório de trabalho.
alias 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 ajudantes habilitados lidam com a credencial retailer
, get
e erase
comandos emitidos pelo Docker em resposta às operações da CLI.
Você pode associar um registro a um utilitário auxiliar específico usando o credHelpers
campo em seu arquivo de configuração:
"credHelpers": "registry.instance.com": "cross"
Este exemplo u.s. o cross
auxiliar de credenciais para armazenar credenciais para registry.instance.com
em Move em vez do arquivo de configuração. O auxiliar Move é fornecido como parte do Docker’s docker-credential-helpers
pacote que também inclui integrações com o chaveiro do macOS, o Gerenciador de Credenciais do Home windows e o serviço secreto D-Bus.
Sair
Você pode sair excluindo manualmente a seção do registro do seu .docker/config.json
arquivo ou usando o docker logout
comando.
$ docker logout
Curti docker login
, os logouts são direcionados ao Docker Hub por padrão. Você pode sair de um registro privado passando seu nome de host como o único argumento do comando:
$ docker logout registry.instance.com
Problemas comuns
A maioria dos problemas de autenticação do Docker resultam de credenciais ausentes ou inválidas. Se você fez login anteriormente, mas a autenticação não está funcionando, tente sair e fazer login novamente:
$ docker logout # OR $ docker logout registry.instance.com $ docker login # OR $ docker login registry.instance.com
Credenciais rejeitadas consistentemente podem indicar um problema com sua conta de registro. No caso do Docker Hub, verifique se você seguiu as orientações 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 --config
bandeira ou DOCKER_CONFIG
variável de ambiente para carregar a correta cada vez que você empurra e puxa suas imagens.
Resumo
A conexão da CLI do Docker à sua conta do Docker Hub ou a um registro privado geralmente é melhor tratada pelo docker login
comando. Você pode fornecer credenciais interativamente, como sinalizadores, ou por meio de um arquivo de senha canalizado. Certifique-se de usar um token de acesso pessoal em vez de sua senha se 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 com escopo especialmente apropriado para cada um de seus ambientes.
Fonte da Notícia: www.howtogeek.com