web-dev-qa-db-fra.com

Quel système d'exploitation fonctionne dans mon conteneur Docker?

La plupart du temps, en utilisant l'un de ces deux, je peux dire quel OS fonctionne dans mon conteneur Docker (Alpine, centOS, etc.)

Mais cette fois, je ne peux pas dire:

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

Est-il possible d'obtenir une version texte du système d'exploitation qu'il exécute?

24
Bob Yoplait

J'aime utiliser Screenfetch . Vous voudrez peut-être essayer cela.

Si vous examinez le code, vous pouvez voir comment il détermine la distribution:

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

Et pour couvrir aussi CentOS:

  • cat /etc/issue
34
Janosch Gräf

uname vous indiquera le noyau en cours d'exécution, qui est le noyau du système d'exploitation hôte (les conteneurs, contrairement aux VM, partagent le même noyau).

Pour identifier l'image de base du conteneur, il n'y a pas de solution garantie à l'intérieur du conteneur. Vous pouvez rechercher des pointeurs auprès des principaux fournisseurs comme le donne Janosch (/ etc/os-release pour la plupart des fournisseurs comme Debian, CentOS et Alpine, ou/etc/lsb-release pour Ubuntu). Vous pouvez également vérifier les outils de gestion des packages s'ils sont installés (/ etc/apk,/etc/apt,/etc/yum).

En dehors du conteneur, vous pouvez inspecter l'image et rechercher les calques pour voir d'où vient l'image, mais cela permet de localiser les sommes de contrôle sha256. La meilleure méthode consiste à examiner le Dockerfile qui a été utilisé pour créer l'image.

8
BMitch