Quale sistema operativo è in esecuzione nel mio contenitore Docker?


20

Il più delle volte, usando uno di questi due, posso dire quale sistema operativo è in esecuzione nel mio contenitore Docker (alpine, centOS, ecc.)

Ma questa volta, non posso 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

Qualche modo per ottenere una versione di testo del sistema operativo in esecuzione?

Risposte:


31

Mi piace usare Screenfetch . Potresti provare questo.

Se guardi nel codice puoi vedere come determina la distribuzione:

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

E per coprire anche CentOS:

  • cat /etc/issue

1
"/ etc / os-release" è davvero una buona fonte, ma non è presente su alcuni centOS. Se hai solo uno scatto da decidere, direi: "ls / etc / * release". Ma se uno ha bisogno della stringa, è necessario sia "cat / etc / os-release" che "cat / etc / issue" per coprire tutti i casi. Grazie ad entrambi.
— Bob Yoplait,

Sì su alpino funzionano entrambi cat /etc/issuee cat /etc/alpine-release!
— Julian,

7

uname ti dirà il kernel che è in esecuzione, che è il kernel del sistema operativo host (i contenitori, a differenza dei VM, condividono lo stesso kernel).

Per identificare l'immagine di base del contenitore, non esiste una soluzione garantita dall'interno del contenitore. Puoi cercare i suggerimenti dei principali fornitori come Janosch (rilascio / etc / os per la maggior parte dei distributori come Debian, CentOS e Alpine, o rilascio / etc / lsb per Ubuntu). Puoi anche controllare gli strumenti di gestione dei pacchetti se sono installati (/ etc / apk, / etc / apt, / etc / yum).

Al di fuori del contenitore, è possibile ispezionare l'immagine e rintracciare i livelli per vedere da dove proviene l'immagine, ma ciò accede alla localizzazione dei checksum sha256. Il metodo migliore è rivedere il Dockerfile che è stato utilizzato per creare l'immagine.


Quando eseguo questo su Windows con l'ultima immagine di Ubuntu, ad oggi, unameritorna Linuxe uname -aritornaLinux 89e9cd67fc7a 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
— David Culbreth

1
Linuxkit è la VM Docker integrata, ovvero il sistema operativo host con contenitori eseguiti su Docker per Windows.
— BMitch

"uname" ti fornirà dettagli sull'host sottostante, non sul contenitore (anche se lo esegui all'interno di un contenitore).
— Trondh,

@Trondh Credo sia quello che ho detto. C'è qualcosa nella risposta che deve essere corretto?
— BMitch,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.