Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 2. Trabalhando com imagens de contêineres

As imagens base do Red Hat Enterprise Linux (RHEL) podem ser usadas como base para as imagens do contêiner. Para a RHEL 8, todas as imagens base da Red Hat estão disponíveis como novas Imagens Base Universais (UBI), o que significa que você pode obtê-las e redistribuí-las livremente. Estas incluem versões do padrão RHEL, minimal, init e Red Hat Software Collections que agora estão disponíveis gratuitamente e podem ser redistribuídas. As imagens de base RHEL são:

  • Supported: Apoiado pela Red Hat para uso com aplicações em contêineres. Eles contêm os mesmos pacotes de software seguros, testados e certificados encontrados no Red Hat Enterprise Linux.
  • Cataloged: Listado no Catálogo de Recipientes Red Hat, com descrições, detalhes técnicos, e um índice de saúde para cada imagem.
  • Updated: Oferecido com um calendário de atualizações bem definido, para que você saiba que está recebendo o software mais recente (veja Red Hat Container Image Updates).
  • Tracked: Rastreado por erratas para ajudar a entender as mudanças que entram em cada atualização.
  • Reusable: As imagens de base precisam ser baixadas e colocadas em cache em seu ambiente de produção uma vez. Cada imagem base pode ser reutilizada por todos os recipientes que a incluem como sua base.

Os UBIs para RHEL 8 fornecem a mesma qualidade de software RHEL para construir imagens de contêineres que seus predecessores não-UBI (rhel6, rhel7, rhel-init, e rhel-minimal imagens base), mas oferecem mais liberdade na forma como são usadas e distribuídas.

Para o RHEL 8, estão disponíveis imagens padrão, mínimas e de base init. A Red Hat também fornece um conjunto de imagens de tempo de execução de linguagem, baseadas em Application Streams, que você pode desenvolver quando estiver criando recipientes para aplicações que requerem tempos de execução específicos. As imagens em tempo de execução incluem python, php, ruby, nodejs, e outros.

Há também um conjunto de imagens RHEL 7 que você pode rodar nos sistemas RHEL 8. Para a RHEL 7, há imagens base tanto UBI (redistribuíveis) quanto não UBI (requerem acesso por assinatura e são não redistribuíveis). Essas imagens incluem três imagens base regulares (rhel7, rhel-init, e rhel-minimal) e três imagens UBI (ubi7, ubi7-init, e ubi7-minimal).

Embora a Red Hat não ofereça ferramentas para rodar containers nos sistemas RHEL 6, ela oferece imagens de containers RHEL 6 que você pode usar. Há uma imagem base padrão (rhel6) e init (rhel6-init) disponível para a RHEL 6, mas nenhuma imagem mínima RHEL 6. Da mesma forma, não há imagens RHEL 6 UBI.

Embora as imagens base herdadas da RHEL 7 continuarão a ser suportadas, recomenda-se que as imagens da UBI avancem. Por esse motivo, exemplos no restante deste capítulo são feitos com as imagens UBI da RHEL 8. Para uma lista das imagens UBI disponíveis da Red Hat, e informações associadas sobre repositórios UBI e código fonte, veja o artigo Imagens Base Universais (UBI): Imagens, repositórios e pacotes.

2.1. Diferenças entre as imagens RHEL e as imagens UBI

As imagens UBI foram criadas para que você possa construir suas imagens de contêineres sobre uma base de software oficial da Red Hat que pode ser livremente compartilhada e implantada. De uma perspectiva técnica, elas são quase idênticas às imagens herdadas do Red Hat Enterprise Linux, o que significa que elas têm grande segurança, desempenho e ciclos de vida, mas são lançadas sob um Contrato de Licença de Usuário Final diferente. Aqui estão alguns atributos das imagens UBI da Red Hat:

  • Built from a subset of RHEL content: As imagens da Red Hat Universal Base são construídas a partir de um subconjunto de conteúdo normal do Red Hat Enterprise Linux. Todo o conteúdo usado para construir imagens UBI selecionadas é lançado em um conjunto de repositórios yum disponíveis publicamente. Isto permite instalar pacotes extras, assim como atualizar qualquer pacote nas imagens base do UBI.
  • Redistributable: A intenção das imagens UBI é permitir que clientes, parceiros, ISVs e outros da Red Hat padronizem as imagens UBI para que você possa construir suas imagens de contêiner sobre uma base de software oficial da Red Hat que possa ser livremente compartilhada e implantada. De uma perspectiva técnica, elas são quase idênticas às imagens herdadas do Red Hat Enterprise Linux, o que significa que elas têm grande segurança, desempenho e ciclos de vida, mas são lançadas sob um Contrato de Licença de Usuário Final diferente.
  • Base and runtime images: Além dos três tipos de imagens de base, também estão disponíveis versões UBI de várias imagens em tempo de execução. Estas imagens de tempo de execução fornecem uma base para aplicações que podem se beneficiar de tempos de execução padrão e suportados, como python, php, nodejs e ruby.
  • Enabled yum repositories: Os seguintes repositórios yum estão habilitados dentro de cada imagem da RHEL 8 UBI:

    • O repositório ubi-8-baseos contém o subconjunto redistribuível de pacotes RHEL que você pode incluir em seu contêiner.
    • O repositório ubi-8-appstream contém pacotes de fluxos de aplicações que você pode adicionar a uma imagem UBI para ajudá-lo a padronizar os ambientes que você usa com aplicações que requerem tempos de execução específicos.
  • Licensing: Você é livre para usar e redistribuir imagens UBI, desde que você adira ao Contrato Universal de Licenciamento de Imagens Base da Red Hat.
  • Adding UBI RPMs: Você pode adicionar pacotes RPM a imagens UBI a partir de repositórios UBI pré-configurados. Se você estiver em um ambiente desconectado, você deve permitir a listagem da UBI Content Delivery Network(https://cdn-ubi.redhat.com) para usar esse recurso. Consulte a solução Connect to https://cdn-ubi.redhat.com para obter detalhes.