O Red Hat Enterprise Linux 7 inclui suporte oficial para execução de contêineres Docker, e a Red Hat oferece um conjunto de imagens oficiais do rhel Docker. Uma característica interessante dessas imagens é que os pacotes podem ser instalados através do Red Hat Network Subscription do host sem a necessidade de realizar qualquer configuração dentro do contêiner.
Citarhttps://access.redhat.com/articles/881893#createimage:
"Para a versão atual do Red Hat Docker, a imagem padrão do RHEL 7 Docker que você extrai do Red Hat será capaz de aproveitar os direitos do RHEL 7 disponíveis no sistema host. Portanto, contanto que seu host Docker esteja devidamente inscrito e os repositórios sejam habilitado que você precisa obter o software que deseja em seu contêiner (e ter acesso à Internet a partir de seu host Docker), você poderá instalar pacotes dos repositórios de software RHEL 7. "
A minha preocupação é que o mecanismo através do qual isto é conseguido seja bastante opaco. Ao iniciar um novo container com a imagem rhel7.1, por exemplo, é possível rodar yum install foo
sem sequer configurar as variáveis de ambiente do proxy http. Sem compreender esse mecanismo, o administrador do sistema fica potencialmente à mercê de interações desconhecidas entre o sistema host, o daemon Docker e os contêineres em execução. Isto também sugere que o isolamento normal entre o host e o contêiner está de alguma forma comprometido (embora de forma benigna).
Para esclarecer: como esse suporte de assinatura é alcançado e ele depende da construção personalizada do daemon Docker fornecido pela Red Hat por meio da Subscription Network?
Responder1
A Red Hat carrega um patch docker
chamado patch 'segredos' que monta as informações de direitos em contêineres quando eles são executados.
Você pode ver uma descrição melhor do patch e um link para o PR upstream noprojectatômico/dockerrepositório:
https://github.com/projectatomic/docker/tree/docker-1.13.1-rhel#add-rhel-super-secrets-patchpatch
Observe que você precisará selecionar uma das ramificações (o link vai para a ramificação 'docker-1.3.1-rhel') para ver todas as informações do patch transportado.
Responder2
Sabendo como as máquinas virtuais gerenciadas pelo Red Hat Satellite são licenciadas e seguindo o comentário de @Leynos, eu esperaria que houvesse algo semelhante a virt-who
, que é um serviço que conversa com o host de virtualização (vSphere, KVM, etc) e o consulta para encontre detalhes de VMs. Em seguida, ele faz as chamadas de API necessárias no Satellite para permitir que a VM use a licença do datacenter do host.
Eu esperaria que o daemon docker do Red Hat fornecesse algo semelhante, permitindo que o contêiner soubesse que está sendo executado a partir de um host Docker inscrito e, portanto, faça uso dessa assinatura.
Também deaqui:
IMPORTANTE: A execução de contêineres com o comando docker, conforme descrito neste tópico, não requer especificamente que você registre o sistema RHEL Atomic Host e anexe uma assinatura. No entanto, se você quiser executar comandos yum install dentro de um contêiner, o contêiner deverá obter informações de assinatura válidas do RHEL Atomic Host ou falhará.
Portanto, há algo no contêiner ou no daemon que pode consultar o host para encontrar informações de assinatura (e provavelmente também informações de repositório).