Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo fornece uma visão geral das práticas e fluxos de trabalho para usar um registro local, como um registro de contêiner do Azure para manter cópias de conteúdo público, incluindo imagens de contêiner no Docker Hub.
Riscos com conteúdo público
O seu ambiente pode depender de conteúdo público, como imagens de contêiner públicas, charts de Helm, políticas do Open Policy Agent (OPA) ou outros artefatos. Por exemplo, você pode executar nginx para roteamento de serviço ou docker build FROM alpine extraindo imagens diretamente do Docker Hub ou de outro registro público.
Sem controlos adequados, ter dependências do conteúdo do registo público pode introduzir riscos aos fluxos de trabalho de desenvolvimento e implementação de imagens. Para reduzir os riscos, mantenha cópias locais do conteúdo público sempre que possível. Para obter detalhes, consulte o blog Open Container Initiative.
Autenticar com o Docker Hub
Se você atualmente extrai imagens públicas do Docker Hub como parte de um fluxo de trabalho de compilação ou implantação, recomendamos que você se autentique usando uma conta do Docker Hub em vez de fazer uma solicitação pull anônima.
Quando fazes solicitações pull anônimas frequentes, poderás ver erros do Docker semelhantes a ERROR: toomanyrequests: Too Many Requests. ou You have reached your pull rate limit.. Autentica-te no Docker Hub para evitar esses erros.
Nota
A partir de 2 de novembro de 2020, os limites de taxa de download aplicam-se a solicitações anônimas e autenticadas para o Docker Hub a partir de contas do Docker Free Plan. Esses limites são impostos pelo endereço IP e pelo ID do Docker, respectivamente.
Para estimar o número de solicitações pull, lembre-se de que, ao usar serviços de provedor de nuvem ou trabalhar atrás de um NAT corporativo, vários usuários aparecem no Docker Hub como um subconjunto de endereços IP. Ao adicionar a autenticação de conta paga do Docker às solicitações feitas ao Docker Hub, você pode evitar possíveis interrupções de serviço causadas pela limitação do limite de taxa.
Para obter detalhes, consulte Preços e assinaturas do Docker e Termos de Serviço do Docker.
Token de acesso do Docker Hub
O Docker Hub oferece suporte a tokens de acesso pessoal como alternativas a uma senha do Docker ao autenticar-se no Docker Hub. Os tokens são recomendados para serviços automatizados que extraem imagens do Docker Hub. Você pode gerar vários tokens para diferentes usuários ou serviços e revogar tokens quando não forem mais necessários.
Para autenticar com docker login usando um token, omita a senha na linha de comando. Quando for solicitada uma senha, introduza o token. Se você habilitou a autenticação de dois fatores para sua conta do Docker Hub, deverá usar um token de acesso pessoal ao efetuar login a partir da CLI do Docker.
Autenticar a partir dos serviços do Azure
Vários serviços do Azure, incluindo o Serviço de Aplicativo e as Instâncias de Contêiner do Azure, oferecem suporte à extração de imagens de registros públicos, como o Docker Hub, para implantações de contêiner. Se você precisar implantar uma imagem do Docker Hub, recomendamos que você defina as configurações para autenticar usando uma conta do Docker Hub. Exemplos:
Serviço de Aplicações
- Fonte da imagem: Docker Hub
- Acesso ao repositório: Privado
- Login: <Nome de usuário do Docker Hub>
- Senha: <Token do Docker Hub>
Para obter detalhes, consulte Pulls autenticados do Docker Hub no Serviço de Aplicações.
Azure Container Instances
- Fonte da imagem: Docker Hub ou outro registro
- Tipo de imagem: Privada
- Servidor de login do registo de imagens: docker.io
- Nome de usuário do registro de imagem: <nome de usuário do Docker Hub>
- Senha do registo da imagem: <Token do Docker Hub>
- Imagem: docker.io/< nome do> repo:<tag>
Configurar o Cache de Artefatos para consumir conteúdo público
A prática recomendada para consumir conteúdo público é combinar a autenticação do Registro e o recurso Cache de Artefatos. Use o Cache de Artefatos para armazenar em cache seus artefatos de contêiner em seu Registro de Contêiner do Azure, mesmo em redes privadas. Usar o Cache de Artefatos não apenas protege você dos limites de taxa do Registro, mas também aumenta drasticamente a confiabilidade de pull quando combinado com ACR replicado geograficamente para extrair artefatos da região mais próxima do seu recurso do Azure. Além disso, pode usar todas as funcionalidades de segurança que o ACR oferece, incluindo redes privadas, configuração de firewall, Service Principals e muito mais. Para obter informações completas sobre como usar conteúdo público com o Cache de Artefatos ACR, consulte o tutorial Cache de Artefatos .
Importar imagens para um registro de contêiner do Azure
Para gerenciar cópias de imagens públicas, crie um registro de contêiner do Azure se ainda não tiver um. Use a CLI do Azure, o portal do Azure, o Azure PowerShell ou outras ferramentas para criar um registro.
Como uma etapa única recomendada, importe imagens base e outro conteúdo público para o registro de contêiner do Azure. O comando az acr import na CLI do Azure dá suporte à importação de imagens de registros públicos, como o Docker Hub e o Microsoft Container Registry, e de registros de contêiner privados.
az acr import não requer uma instalação local do Docker. Você pode executá-lo com uma instalação local da CLI do Azure ou diretamente no Azure Cloud Shell. Ele suporta imagens de qualquer tipo de sistema operacional, imagens de várias arquiteturas ou artefatos OCI, como gráficos Helm.
Dependendo das necessidades da sua organização, você pode importar para um registro dedicado ou um repositório em um registro compartilhado.
az acr import \
--name myregistry \
--source docker.io/library/hello-world:latest \
--image hello-world:latest \
--username <Docker Hub username> \
--password <Docker Hub token>
Atualizar referências de imagem
Os desenvolvedores de imagens de aplicativos devem garantir que seu código faça referência ao conteúdo local sob seu controle.
- Atualize as referências de imagem para usar o registo privado. Por exemplo, actualize uma
FROM baseimage:v1instrução num Dockerfile paraFROM myregistry.azurecr.io/mybaseimage:v1. - Configure credenciais ou um mecanismo de autenticação para usar o registro privado. O mecanismo exato depende das ferramentas que você usa para acessar o registro e como você gerencia o acesso do usuário.
- Se você usar um cluster Kubernetes ou o Serviço Kubernetes do Azure para acessar o Registro, consulte os cenários de autenticação.
- Saiba mais sobre as opções para autenticar com um registro de contêiner do Azure.
Automatize as atualizações de imagens de aplicativos
Para automatizar compilações de imagens de aplicativos quando as imagens base são atualizadas, configure uma tarefa do Registro de Contêiner do Azure. Essa abordagem expande a importação de imagens. Uma tarefa de compilação automatizada pode rastrear atualizações de imagem base e atualizações de código-fonte.
Para obter um exemplo detalhado, consulte Como consumir e manter conteúdo público com as Tarefas do Registro de Contêiner do Azure.
Nota
Uma única tarefa pré-configurada pode reconstruir automaticamente cada imagem de aplicativo que faz referência a uma imagem base dependente.
Próximos passos
- Saiba mais sobre as Tarefas ACR para criar, executar, enviar por push e corrigir imagens de contêiner no Azure.
- Consulte Como consumir e manter conteúdo público com as Tarefas do Registo de Contentores do Azure para um fluxo de controlo automatizado que atualiza as imagens base para o seu ambiente.
- Consulte os tutoriais de Tarefas ACR para obter mais exemplos de como automatizar compilações e atualizações de imagens.