IBM Cloud Docs
Limpando seus namespaces no Container Registry

Limpando seus namespaces no Container Registry

Você pode limpar seu namespaceUma coleção de repositórios que armazenam imagens em um registro. Um espaço de nomes está associado a uma conta IBM Cloud, que pode incluir diversos namespaces. optando por manter apenas as imagens mais recentes em cada repositório desse namespace em IBM Cloud® Container Registry.

Também é possível escolher se você deseja excluir ou reter suas imagens não identificadas.

Você pode detectar e excluir imagens antigas de todos os repositórios em um namespace executando um comando único ibmcloud cr retention-run ou agendando uma política executando o comando ibmcloud cr retention-policy-set. É possível escolher o número de imagens que deseja manter em cada repositório em um namespace. Todas as outras imagens são excluídas automaticamente. Ambas as opções mantêm as imagens mais recentes. A idade da imagem é determinada pela data em que a imagem foi criada, não quando foi enviada para o registroUm serviço de armazenamento e distribuição que contém imagens públicas ou privadas que são usadas para criar contêineres.. O número de imagens que são mantidas é a mesma para cada repositório nesse namespace.

O ibmcloud cr retention-run e ibmcloud cr retention-policy-set produzem uma lista de imagens a serem excluídas. Você deve confirmar que deseja excluir essas imagens. Depois de executar o comando ibmcloud cr retention-policy-set pela primeira vez, a política é executada automaticamente e exclui qualquer imagem que atenda aos critérios especificados na política. As imagens excluídas são armazenadas na lixeira por 30 dias.

Se você desejar verificar o que está na lixeira, execute o comando ibmcloud cr trash-list. É possível restaurar imagens da lixeira executando o comando ibmcloud cr image-restore.

Se você desejar verificar suas políticas, será possível executar o comando ibmcloud cr retention-policy-list.

Se você desejar cancelar uma política, atualize a política de retenção para que ela mantenha todas as suas imagens.

Também é possível limpar seu o namespace ao excluir as suas imagens não identificadas.

Planejando a retenção

Os comandos ibmcloud cr retention-run e ibmcloud cr retention-policy-set operam de acordo com o namespace. Se você tiver diversos namespaces em seu pipeline, será possível aplicar diferentes critérios de retenção para cada um deles a fim de melhor atender aos seus requisitos.

Considere um pipeline de entrega típico com ambientes de desenvolvimento, preparação e produção. Como o código é entregue, a integração e a implementação contínuas enviam por push as imagens para o registro e, em seguida, as implementam diretamente em seu ambiente de desenvolvimento. Após o teste, algumas construções do desenvolvimento são promovidas para a preparação e, em seguida, potencialmente para a produção. Nesse cenário, a taxa de mudança de imagem é mais rápida no desenvolvimento e mais lenta na produção. Se todos os seus ambientes fazem pull de imagens do mesmo namespace, pode ser difícil escolher uma quantidade apropriada de imagens para reter por causa desta diferença de velocidade.

Uma boa abordagem é entregar todas as imagens em um namespace de desenvolvimento, por exemplo, project-development, e depois usar o comando ibmcloud cr image-tag para marcar a imagem em um namespace diferente quando ela for promovida a um estágio superior do pipeline. No exemplo anterior, você pode ter três namespaces: development project-development, staging project-staging e production project-production. Quando você está promovendo de desenvolvimento para preparação, as imagens são identificadas do namespace project-development para o namespace project-staging e as imagens do namespace project-staging são usadas para implementação. Da mesma forma, quando você está promovendo de preparação para produção, as imagens são identificadas do namespace project-staging para o namespace project-production e as imagens do namespace project-production são usadas na implementação de produção.

Você obtém as vantagens a seguir usando essa técnica:

  • É possível escolher configurações de retenção diferentes para namespaces de desenvolvimento, preparação e produção.
  • Você minimiza as chances de remover acidentalmente uma imagem que pode estar em uso em seus ambientes de preparação ou de produção, em comparação com o uso de um único namespace para todas as imagens.
  • É possível usar diferentes políticas do IAM. Por exemplo, é possível ter acesso mais restritivo a imagens de produção.
  • É possível assinar imagens de produção, mas deixar as imagens de desenvolvimento e preparação sem assinatura.

Algumas ferramentas de compilação, por exemplo, Cloud Native Buildpacks e imagens de base sem controle, produzem imagens com a data de compilação definida como uma constante específica em vez do tempo real de compilação ou sem nenhum registro de data e hora de compilação. Se você desejar usar políticas de retenção em namespaces que contêm imagens que são construídas usando ferramentas similares, esteja ciente de que as imagens que não têm uma data de criação e as imagens que foram criadas antes do 2013-01-19T00:13:39Z são sempre retidas

Para obter mais informações, consulte os tópicos a seguir para obter assistência:

Limpar seus namespaces para manter um número configurado de imagens

Use o comando ibmcloud cr retention-run para limpar um namespace retendo um número específico de imagens para cada repositório dentro de um namespace no IBM Cloud Container Registry. Todas as outras imagens no namespace são excluídas.

É possível escolher se você deseja excluir as imagens não identificadas do processo de limpeza.

O comando ibmcloud cr retention-run lista as imagens a serem excluídas e fornece a você a opção de cancelar antes da exclusão.

Quando uma imagem, dentro de um repositório, é referenciada por múltiplas tags, essa imagem é contada apenas uma vez. As imagens mais recentes são retidas. A idade é determinada de quando a imagem foi criada, não de quando foi enviada para o registro.

Se desejar restaurar uma imagem excluída, será possível listar o conteúdo da lixeira executando o comando ibmcloud cr trash-list e restaurar uma imagem selecionada executando o comando ibmcloud cr image-restore.

Para reduzir o número de imagens em cada repositório em seu namespace usando a CLI, conclua as etapas a seguir:

  1. Efetue login no IBM Cloud executando o comando ibmcloud login.

  2. Escolha o registro no qual você deseja limpar suas imagens executando o comando a seguir e selecionando a região apropriada:

    ibmcloud cr region-set
    
  3. Para reter as imagens mais recentes e excluir as outras, execute um dos comandos a seguir:

    • Se você desejar limpar as imagens identificadas e não identificadas, execute o comando a seguir:

      ibmcloud cr retention-run --images IMAGE_COUNT NAMESPACE
      

      Onde IMAGE_COUNT é o número de imagens que você deseja reter para cada repositório em seu namespace NAMESPACE.

    • Se você desejar limpar somente as imagens identificadas e reter todas as imagens não identificadas, execute o comando a seguir:

      ibmcloud cr retention-run --retain-untagged --images IMAGE_COUNT NAMESPACE
      

      Onde IMAGE_COUNT é o número de imagens que você deseja reter para cada repositório em seu namespace NAMESPACE.

    Se uma imagem que você espera ver não aparecer na lista produzida, consulte Por que o comando de retenção não mostra todas as imagens? para obter assistência.

  4. Verifique se as imagens foram excluídas, executando o comando a seguir e verifique se as imagens não são mostradas na lista.

    ibmcloud cr image-list
    

    Se o comando listing images (listar imagens) apresentar um tempo limite, consulte Por que está apresentando um tempo limite quando listo imagens?

Defina uma política de retenção para os seus namespaces

É possível definir uma política de retenção para que seus namespaces retenham apenas imagens que atendam aos seus critérios. A política de retenção é executada de forma automática para limpar seus namespaces.

É possível escolher se você deseja excluir as imagens não identificadas do processo de limpeza.

É possível usar o comando ibmcloud cr retention-policy-set para configurar uma política que retém um número especificado de imagens para cada repositório dentro de um namespace no IBM Cloud Container Registry. Todas as outras imagens no namespace são excluídas e movidas para a lixeira. Ao configurar uma política, ela é executada imediatamente e, em seguida, diariamente. É possível configurar apenas uma política em cada namespace.

Quando uma imagem, dentro de um repositório, é referenciada por múltiplas tags, essa imagem é contada apenas uma vez. As imagens mais recentes são retidas. A idade é determinada de quando a imagem foi criada, não de quando foi enviada para o registro.

Se você excluir uma imagem com erro, será possível restaurá-la usando os comandos ibmcloud cr trash-list e ibmcloud cr image-restore.

Para configurar uma política e mover imediatamente suas imagens excluídas para a lixeira, conclua as etapas a seguir:

  1. Efetue login no IBM Cloud executando o comando ibmcloud login.

  2. Escolha o registro no qual você deseja limpar suas imagens executando o comando a seguir e selecionando a região apropriada:

    ibmcloud cr region-set
    
  3. Para configurar uma política que retenha as imagens mais recentes e exclua as outras, execute um dos comandos a seguir:

    • Se você desejar limpar as imagens identificadas e não identificadas, execute o comando a seguir:

      ibmcloud cr retention-policy-set --images IMAGE_COUNT NAMESPACE
      

      Onde IMAGE_COUNT é o número de imagens que você deseja reter para cada repositório em seu namespace NAMESPACE.

      É exibida uma lista de imagens a serem excluídas.

    • Se você desejar limpar somente as imagens identificadas e reter todas as imagens não identificadas, execute o comando a seguir:

      ibmcloud cr retention-policy-set --retain-untagged --images IMAGE_COUNT NAMESPACE
      

      Onde IMAGE_COUNT é o número de imagens que você deseja reter para cada repositório em seu namespace NAMESPACE.

      É exibida uma lista de imagens a serem excluídas.

  4. Revise a lista de imagens. Para executar a política e excluir as imagens, confirme que você deseja configurar a política.

    Se você não quiser excluir essas imagens, escolha No. A política não é definida e as imagens não são excluídas.

  5. Verifique se as imagens foram excluídas executando o comando a seguir e se são mostradas na lista.

    ibmcloud cr trash-list
    
  6. Verifique se a política está configurada executando o comando ibmcloud cr retention-policy-list e se a política configurada para o namespace retém o número necessário de imagens. Se você configurar a política para reter todas as imagens não identificadas, assegure-se de que a coluna Retain all untagged tenha o valor true.

    ibmcloud cr retention-policy-list
    

Atualize uma política de retenção para manter todas as suas imagens

Todos os namespaces têm uma política padrão que mantém todas as imagens. É possível retornar uma política para o estado padrão.

É possível usar o comando ibmcloud cr retention-policy-set para configurar a política de volta ao estado padrão, executando o comando a seguir, em que NAMESPACE é o seu namespace:

ibmcloud cr retention-policy-set --images All NAMESPACE

Limpar os seus namespaces excluindo imagens não identificadas

É possível limpar seu namespace e reduzir suas contas ao excluir suas imagens sem tag no namespace e, como opção, emitir os resultados no formato JSON.

Se você quiser excluir suas imagens sem tag e emitir os resultados no formato JSON, execute o seguinte comando ibmcloud cr image-prune-untagged, em que NAMESPACE é o seu namespace:

ibmcloud cr image-prune-untagged [--force | -f [--output json]] --restrict NAMESPACE