Na maioria das vezes, usando um desses dois, posso dizer qual sistema operacional está sendo executado no meu contêiner Docker (alpine, centOS, etc)
Mas desta vez, eu não posso 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/Linuxbash-4.2$ more /etc/issue\SKernel \r on an \m
Alguma maneira de obter uma versão de texto do sistema operacional em execução ?
uname irá dizer-lhe o kernel que está em execução, que é o kernel do sistema operacional host (contêineres, ao contrário de 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 ponteiros dos principais fornecedores como Janosch gives (/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 permite localizar as somas de verificação sha256. O melhor método é revisar o Dockerfile que foi usado para construir a imagem.
Em um docker aparado recipiente, isso funcionou para mim depois de nenhuma sorte com / etc/lancar, / etc / problema, lsb_release, etc. (Eu sei que alguns são para Distros específicas):
Execute este comando como raiz:
# cat /proc/versionLinux version 4.19.121-linuxkit (root@18b3f92ade35) (gcc version 9.2.0 (Alpine 9.2.0)) #1 SMP Thu Jan 21 15:36:34 UTC 2021