GEEKS

Como fazer login no Docker Hub e nos registros privados com a CLI do Docker

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”.

imagem da criação de um token de acesso do Docker Hub

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, --passworde --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, gete 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

Artigos relacionados

Botão Voltar ao topo