OS mana yang berjalan di wadah Docker saya?

20

Sebagian besar waktu, menggunakan salah satu dari dua ini, saya dapat mengetahui OS mana yang berjalan dalam wadah Docker saya (alpine, centOS, dll)

Tapi kali ini, saya tidak tahu:

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

Adakah cara untuk mendapatkan versi teks dari OS yang sedang dijalankannya?

Bob Yoplait
sumber

Jawaban:

30

Saya suka menggunakan Screenfetch . Anda mungkin ingin mencobanya.

Jika Anda melihat kode Anda dapat melihat bagaimana menentukan distribusi:

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

Dan untuk mencakup CentOS juga:

  • cat /etc/issue
Janosch Gräf
sumber
1
"/ etc / os-release" memang merupakan sumber yang baik, tetapi tidak ada pada beberapa centOS. Jika Anda hanya memiliki satu kesempatan untuk memutuskan, saya akan mengatakan: "ls / etc / * release". Tetapi jika seseorang membutuhkan cara string, Anda membutuhkan "cat / etc / os-release" dan "cat / etc / issue" untuk mencakup semua kasus. Terima kasih kalian berdua.
Bob Yoplait
Ya pada alpine mereka berdua bekerja cat /etc/issuedan cat /etc/alpine-release!
Julian
7

uname akan memberi tahu Anda kernel yang sedang berjalan, yang merupakan kernel OS host (wadah, tidak seperti VM, berbagi kernel yang sama).

Untuk mengidentifikasi gambar dasar wadah, tidak ada solusi yang terjamin dari dalam wadah. Anda dapat mencari petunjuk dari vendor utama seperti yang diberikan Janosch (/ etc / os-release untuk sebagian besar vendor seperti Debian, CentOS dan Alpine, atau / etc / lsb-release untuk Ubuntu). Anda juga dapat memeriksa alat manajemen paket jika sudah diinstal (/ etc / apk, / etc / apt, / etc / yum).

Di luar wadah, Anda dapat memeriksa gambar dan melacak lapisan untuk melihat dari mana gambar itu berasal, tetapi itu masuk ke dalam menemukan sha256 checksum. Metode terbaik adalah meninjau Dockerfile yang digunakan membangun gambar.

BMitch
sumber
Ketika saya menjalankan ini di windows dengan gambar Ubuntu terbaru, sampai hari ini, unamebaru saja kembali Linux, dan uname -abaru saja kembaliLinux 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 adalah tertanam Docker VM, yang merupakan OS host dengan wadah dijalankan di Docker untuk Windows.
BMitch
"uname" akan memberi Anda detail tentang host yang mendasarinya, bukan wadah (bahkan jika Anda menjalankannya di dalam wadah).
Trondh
@ Trondh saya percaya itu yang saya katakan. Apakah ada sesuatu dalam jawaban yang perlu diperbaiki?
BMitch