Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 Hub do Docker.
Riscos com conteúdo público
Seu ambiente pode depender do conteúdo público, como imagens de contêiner público, gráficos do Helm, políticas do Agente de Política Aberta (OPA) ou outros artefatos. Por exemplo, você pode executar nginx para roteamento de serviço ou docker build FROM alpine
puxando imagens diretamente do Docker Hub ou outro registro público.
Sem os controles adequados, ter dependências do conteúdo do registro público pode introduzir riscos aos fluxos de trabalho de desenvolvimento e implantação de imagens. Para atenuar os riscos, mantenha cópias locais do conteúdo público quando possível. Para obter detalhes, veja o blog Open Container Initiative.
Autenticar com o Docker Hub
Se você efetuar pull de imagens públicas do Docker Hub como parte de um fluxo de trabalho de compilação ou implantação, recomendamos autenticar usando uma conta do Docker Hub em vez de fazer uma pull request anônima.
Ao fazer solicitações de pull anônimas frequentes, você pode ver erros do Docker semelhantes a ERROR: toomanyrequests: Too Many Requests.
ou You have reached your pull rate limit.
. Autentique-se no Hub do Docker para evitar esses erros.
Observação
A partir de 2 de novembro de 2020, os limites de taxa de download se aplicam a solicitações anônimas e autenticadas ao Docker Hub de contas do Docker Free Plan. Esses limites são impostos por endereço IP e ID do Docker, respectivamente.
Para estimar o número de solicitações de pull, tenha em mente 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 Hub do Docker, você pode evitar possíveis interrupções de serviço causadas pela limitação de limite de taxa.
Para obter detalhes, veja preços e assinaturas do Docker e os Termos de serviço do Docker.
Token de acesso do Docker Hub
O Docker Hub dá suporte a tokens de acesso pessoal como alternativas a uma senha do Docker ao autenticar para Docker Hub. Os tokens são recomendados para serviços automatizados que replicam imagens do Docker Hub. Você pode gerar vários tokens para diferentes usuários ou serviços e revogar tokens quando não for mais necessário.
Para autenticar com docker login
usando um token, omita a senha na linha de comando. Quando for solicitado a inserir uma senha, insira o token. Se você habilitar a autenticação de dois fatores para sua conta Docker Hub, deverá usar um token de acesso pessoal ao fazer logon na 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, dão suporte ao pull 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 definir as configurações para autenticar usando uma conta Docker Hub. Exemplos:
Serviço de Aplicativo
- Origem da imagem: Docker Hub
- Acesso ao repositório: Privado
- Logon: <nome de usuário do Docker Hub>
- Senha: <token do Docker Hub>
Para obter detalhes, veja Pulls autenticados do Docker Hub no Serviço de Aplicativo.
Instâncias de Contêiner do Azure
- Origem da imagem: Docker Hub ou outro registro
- Tipo de imagem: Privado
- Servidor de logon do registro da imagem: docker.io
- Nome de usuário do registro de imagem: <nome de usuário do Docker Hub>
- Senha do registro de imagem: <token do Docker Hub>
- Imagem: docker.io/<nome do repositório>:<marca>
Configurar o Cache de Artefato para consumir conteúdo público
A melhor prática para consumir conteúdo público é combinar autenticação de registro e o recurso de Cache de Artefatos. Use o Cache de Artefatos para armazenar em cache seus artefatos de contêiner no Registro de Contêiner do Azure mesmo em redes privadas. Usar o Cache de Artefato não apenas protege você dos limites de taxa do registro, mas também aumenta drasticamente a confiabilidade do pull ao ser combinado com o ACR Replicado geograficamente para efetuar pull de artefatos da região mais próxima ao seu recurso do Azure. Além disso, você pode usar todos os recursos de segurança que o ACR oferece, incluindo redes privadas, configuração de firewall, Principais de Serviço e muito mais. Para obter informações completas sobre como usar conteúdo público com o Cache de Artefatos do ACR, consulte o tutorial do Cache de Artefatos .
Importar imagens a um registro de contêiner do Azure
Para gerenciar cópias de imagens públicas, crie um registro de contêiner do Azure se você 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 Hub do Docker e o Registro de Contêiner da Microsoft, 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 dá suporte a imagens de qualquer tipo de sistema operacional, imagens de várias arquiteturas ou artefatos de 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 registro privado. Por exemplo, atualize uma instrução
FROM baseimage:v1
em um Dockerfile paraFROM myregistry.azurecr.io/mybaseimage:v1
para um registro não DNL ouFROM myregistry-abc123.azurecr.io/mybaseimage:v1
para um registro habilitado para DNL. Para obter mais detalhes sobre as opções de DNL durante a criação do registro e as implicações de nome DNS, consulte Início Rápido – Criar Registro no Portal. - Configure as 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 de como você gerencia o acesso do usuário.
- Se você usa um cluster do Kubernetes ou o Serviço de Kubernetes do Azure para acessar o registro, confira os cenários de autenticação.
- Saiba mais sobre as opções de autenticação com um Registro de Contêiner do Azure.
Automatizar atualizações de imagem de aplicativo
Para automatizar compilações de imagem de aplicativo quando imagens base são atualizadas, configure uma tarefa do Registro de Contêiner do Azure. Essa abordagem se expande na importação de imagem. Uma tarefa de compilação automatizada pode controlar as atualizações de imagem base e as atualizações de código-fonte.
Para obter um exemplo detalhado, veja Como consumir e manter conteúdo público com Tarefas do Registro de Contêiner do Azure.
Observação
Uma única tarefa pré-configurada pode recriar automaticamente todas as imagens do aplicativo que fazem referência a uma imagem base dependente.
Próximas etapas
- Saiba mais sobre as Tarefas do ACR para compilar, executar, enviar por push e corrigir imagens de contêiner no Azure.
- Veja Como consumir e manter conteúdo público com Tarefas do Registro de Contêiner do Azure para um fluxo de trabalho de retenção automatizada para atualizar as imagens base para o seu ambiente.
- Veja os tutoriais de Tarefas do ACR para ver mais exemplos para automatizar compilações e atualizações de imagem.