O Red Hat Enterprise Linux 7 inclui suporte oficial para a execução de contêineres do Docker, e o 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 da Assinatura do Red Hat Network do host sem precisar executar nenhuma configuração no contêiner.
Para citar https://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ê obtém da Red Hat poderá usar os direitos do RHEL 7 disponíveis no sistema host. Portanto, desde que o host do Docker esteja devidamente assinado e os repositórios sejam Se você precisar obter o software que deseja em seu contêiner (e ter acesso à Internet a partir do host do Docker), poderá instalar pacotes dos repositórios de software RHEL 7 ".
Minha preocupação é que o mecanismo pelo qual isso seja alcançado seja bastante opaco. Ao iniciar um novo contêiner com a imagem rhel7.1, por exemplo, é possível executar yum install foo
sem sequer configurar as variáveis de ambiente do proxy http. Sem entender esse mecanismo, o administrador do sistema está potencialmente à mercê de interações desconhecidas entre o sistema host, o daemon do Docker e os contêineres em execução. Isso também sugere que o isolamento normal entre o host e o contêiner está de alguma forma comprometido (embora de maneira benigna).
Para colocar um ponto: como esse suporte à assinatura é alcançado e depende da criação personalizada do daemon Docker fornecido pela Red Hat através da Subscription Network?
Respostas:
A Red Hat carrega um patch
docker
chamado de 'segredos', que monta as informações de direitos em contêineres quando são executados.Você pode ver uma descrição melhor do patch e um link para o PR upstream no repositório projectatomic / docker :
https://github.com/projectatomic/docker/tree/docker-1.13.1-rhel#add-rhel-super-secrets-patchpatch
Observe que você precisará selecionar um dos ramos (o link vai para o ramo 'docker-1.3.1-rhel') para ver todas as informações sobre o patch transportado.
fonte
yum
comandos dentro da sua construção do Docker ou a imagem do Docker falhará?Sabendo como as máquinas virtuais gerenciadas pelo Red Hat Satellite são licenciadas e saindo do comentário da @ Leynos, eu esperaria que houvesse algo semelhante a isso
virt-who
, que é um serviço que conversa com o host de virtualização (vSphere, KVM, etc) e consulta-o 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 do docker Red Hat forneça algo semelhante, permitindo que o contêiner saiba que está sendo executado em um host do Docker inscrito e, portanto, faça uso dessa assinatura.
Também daqui :
Portanto, há algo no contêiner ou no daemon que pode consultar o host para encontrar informações de assinatura (e provavelmente informações de repo).
fonte