Qual SO está sendo executado no meu contêiner do Docker?

7

Na maioria das vezes, usando um desses dois, eu posso dizer qual sistema operacional está rodando no meu contêiner Docker (alpino, centOS, etc)

Mas desta vez não sei dizer:

bash-4.2$ uname -a       
Linux 6fe5c6d1451c 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

bash-4.2$ more /etc/issue
\S
Kernel \r on an \m

Existe alguma maneira de obter uma versão em texto do sistema operacional?

    
por Bob Yoplait 26.09.2016 / 17:18

2 respostas

13

Eu gosto de usar ScreenFig . Você pode querer tentar isso.

Se você observar o código, poderá ver como ele determina a distribuição:

  • lsb_release -sirc
  • cat /etc/os-release

E para cobrir o CentOS também:

  • cat /etc/issue
por 26.09.2016 / 17:26
2

uname informará o kernel que está sendo executado, que é o kernel do sistema operacional do host (os contêineres, ao contrário das VMs, compartilham o mesmo kernel).

Para identificar a imagem de base do contêiner, não há solução garantida de dentro do contêiner. Você pode procurar indicações dos principais fornecedores como Janosch fornece (/ etc / os-release para a maioria dos fornecedores como Debian, CentOS e Alpine, ou / etc / lsb-release para Ubuntu). Você também pode verificar as ferramentas de gerenciamento de pacotes se elas estiverem instaladas (/ etc / apk, / etc / apt, / etc / yum).

Fora do contêiner, você pode inspecionar a imagem e rastrear as camadas para ver de onde a imagem vem, mas isso fica na localização das somas de verificação do sha256. O melhor método é revisar o Dockerfile que foi usado para criar a imagem.

    
por 26.09.2016 / 21:48