Welches Betriebssystem wird in meinem Docker-Container ausgeführt?

19

In den meisten Fällen kann ich anhand einer dieser beiden Methoden feststellen, welches Betriebssystem in meinem Docker-Container ausgeführt wird (alpine, centOS usw.).

Aber dieses Mal kann ich nicht sagen:

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

Gibt es eine Möglichkeit, eine Textversion des Betriebssystems zu erhalten, auf dem es ausgeführt wird?

Bob Yoplait
quelle

Antworten:

29

Ich benutze gerne Screenfetch . Vielleicht möchten Sie das versuchen.

Wenn Sie sich den Code ansehen, können Sie sehen, wie er die Verteilung bestimmt:

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

Und um auch CentOS abzudecken:

  • cat /etc/issue
Janosch Gräf
quelle
1
"/ etc / os-release" ist zwar eine gute Quelle, aber auf einigen CentOS nicht vorhanden. Wenn Sie nur einen Schuss zur Entscheidung haben, würde ich sagen: "ls / etc / * release". Aber wenn man die Zeichenkette braucht, braucht man sowohl "cat / etc / os-release" als auch "cat / etc / issue", um alle Fälle abzudecken. Danke euch beiden.
Bob Yoplait
Ja auf alpinen arbeiten sie beide cat /etc/issueund cat /etc/alpine-release!
Julian
7

uname Hier erfahren Sie, welcher Kernel gerade ausgeführt wird, nämlich der Kernel des Host-Betriebssystems (Container teilen sich im Gegensatz zu VMs denselben Kernel).

Um das Basisimage des Containers zu identifizieren, gibt es keine garantierte Lösung innerhalb des Containers. Sie können nach Hinweisen von wichtigen Anbietern wie Janosch suchen (/ etc / os-release für die meisten Anbieter wie Debian, CentOS und Alpine oder / etc / lsb-release für Ubuntu). Sie können auch überprüfen, ob die Paketverwaltungstools installiert sind (/ etc / apk, / etc / apt, / etc / yum).

Außerhalb des Containers können Sie das Bild untersuchen und die Ebenen nachverfolgen, um festzustellen, woher das Bild stammt. Dabei werden jedoch sha256-Prüfsummen ermittelt. Am besten überprüfen Sie die Docker-Datei, die zum Erstellen des Images verwendet wurde.

BMitch
quelle
Wenn ich dies auf Windows mit dem neuesten Ubuntu-Image ausführe, unamekehre ich gerade zurück Linuxund uname -akehre gerade zurückLinux 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 ist die eingebettete Docker-VM, bei der es sich um das Host-Betriebssystem mit Containern handelt, die unter Docker für Windows ausgeführt werden.
BMitch
"uname" gibt Ihnen Details zum zugrunde liegenden Host, nicht zum Container (auch wenn Sie ihn in einem Container ausführen).
11.
@Trondh Ich glaube das habe ich gesagt. Gibt es etwas in der Antwort, das korrigiert werden muss?
BMitch