Który system operacyjny działa w moim kontenerze Docker?

20

Przez większość czasu, używając jednego z tych dwóch, mogę stwierdzić, który system operacyjny działa w moim kontenerze Docker (alpine, centOS itp.)

Ale tym razem nie mogę powiedzieć:

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

Jest jakiś sposób na uzyskanie wersji tekstowej systemu operacyjnego, na którym działa?

Bob Yoplait
źródło

Odpowiedzi:

31

Lubię używać Screenfetch . Możesz spróbować tego.

Jeśli spojrzysz na kod, zobaczysz, jak determinuje on rozkład:

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

Aby objąć także CentOS:

  • cat /etc/issue
Janosch Gräf
źródło
1
„/ etc / os-release” jest rzeczywiście dobrym źródłem, ale nie występuje w niektórych systemach CentOS. Jeśli masz tylko jeden strzał do podjęcia, powiedziałbym: „wydanie ls / etc / *”. Ale jeśli potrzebujesz łańcucha, potrzebujesz zarówno „cat / etc / os-release”, jak i „cat / etc / issue”, aby uwzględnić wszystkie przypadki. Dziękuję wam obojgu.
Bob Yoplait,
Tak, na alpejskim, oba działają cat /etc/issuei cat /etc/alpine-release!
Julian
7

uname powie ci, że jądro jest uruchomione, czyli jądro systemu operacyjnego hosta (pojemniki, w przeciwieństwie do maszyn wirtualnych, współużytkują to samo jądro).

Aby zidentyfikować podstawowy obraz kontenera, nie ma gwarantowanego rozwiązania z wnętrza kontenera. Możesz szukać wskaźników od głównych dostawców, takich jak Janosch (/ etc / os-release dla większości dostawców, takich jak Debian, CentOS i Alpine, lub / etc / lsb-release dla Ubuntu). Możesz także sprawdzić narzędzia do zarządzania pakietami, jeśli są zainstalowane (/ etc / apk, / etc / apt, / etc / yum).

Poza pojemnikiem możesz sprawdzić obraz i wyśledzić warstwy, aby zobaczyć, skąd pochodzi obraz, ale to pozwala zlokalizować sumy kontrolne sha256. Najlepszą metodą jest przejrzenie pliku Docker, którego użyto do zbudowania obrazu.

BMitch
źródło
Kiedy uruchamiam to w systemie Windows z najnowszym obrazem Ubuntu, na dzień dzisiejszy unamepo prostu wraca Linuxi uname -apo prostu wracaLinux 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 to osadzona maszyna wirtualna Docker, która jest hostem systemu operacyjnego z kontenerami uruchomionymi w systemie Docker dla systemu Windows.
BMitch
„uname” poda szczegóły dotyczące hosta, a nie kontenera (nawet jeśli uruchomisz go w kontenerze).
Trondh,
@Trondh Wierzę, że tak powiedziałem. Czy w odpowiedzi jest coś, co należy poprawić?
BMitch,