La mayoría de las veces, al usar uno de estos dos, puedo saber qué sistema operativo se está ejecutando en mi contenedor Docker (alpine, CentOS, etc.)
Pero esta vez, no puedo decirlo:
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
¿Alguna forma de obtener una versión de texto del sistema operativo que se está ejecutando ?
uname le indicará el kernel que se está ejecutando, que es el kernel del sistema operativo host (los contenedores, a diferencia de las máquinas virtuales, comparten el mismo kernel).
Para identificar la imagen base del contenedor, no hay una solución garantizada desde el interior del contenedor. Puede buscar punteros de los principales proveedores como Janosch (/etc / os-release para la mayoría de los proveedores como Debian, CentOS y Alpine, o /etc/lsb-release para Ubuntu). También puede verificar las herramientas de administración de paquetes si están instaladas (/etc/apk, /etc/apt, /etc/yum).
Fuera del contenedor, puede inspeccionar la imagen y rastrear las capas para ver de dónde proviene la imagen, pero eso se traduce en la localización de sumas de verificación sha256. El mejor método es revisar el Dockerfile que se utilizó para crear la imagen.
En una contenedor recortado de docker, esto funcionó para mí después de no tener suerte con /etc/lanzar, /etc/issue, lsb_release, etc. (Sé que algunos son para distribuciones específicas):
Ejecute este comando como arraigar:
# 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