Hệ điều hành nào đang chạy trong container Docker của tôi?


19

Hầu hết thời gian, sử dụng một trong hai, tôi có thể biết HĐH nào đang chạy trong bộ chứa Docker của mình (alpine, centOS, v.v.)

Nhưng lần này, tôi không thể nói:

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

Bất kỳ cách nào để có được một phiên bản văn bản của hệ điều hành nó đang chạy?

Câu trả lời:


29

Tôi thích sử dụng Screenfetch . Bạn có thể muốn thử điều đó.

Nếu bạn nhìn vào mã, bạn có thể thấy cách nó xác định phân phối:

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

Và để bao gồm cả CentOS:

  • cat /etc/issue

1
"/ Etc / os-phát hành" thực sự là một nguồn tốt, nhưng không có trên một số centOS. Nếu bạn chỉ có một lần quyết định, tôi sẽ nói: "ls / etc / * phát hành". Nhưng nếu ai đó cần cách chuỗi, bạn cần cả "cat / etc / os-release" và "cat / etc / vấn đề" để bao quát tất cả các trường hợp. Cảm ơn cả hai bạn.
Bob Yoplait

Vâng trên alpine cả hai đều làm việc cat /etc/issuecat /etc/alpine-release!
Julian

7

uname sẽ cho bạn biết kernel đang chạy, đó là kernel hệ điều hành (các thùng chứa, không giống như VM, chia sẻ cùng kernel).

Để xác định hình ảnh cơ sở của container, không có giải pháp đảm bảo nào từ bên trong container. Bạn có thể tìm kiếm các con trỏ từ các nhà cung cấp lớn như Janosch cung cấp (/ etc / os-phát hành cho hầu hết các nhà cung cấp như Debian, CentOS và Alpine, hoặc / etc / lsb-phát hành cho Ubuntu). Bạn cũng có thể kiểm tra các công cụ quản lý gói nếu chúng được cài đặt (/ etc / apk, / etc / apt, / etc / yum).

Bên ngoài container, bạn có thể kiểm tra hình ảnh và theo dõi các lớp để xem hình ảnh đến từ đâu, nhưng điều đó được định vị trong tổng kiểm tra sha256. Phương pháp tốt nhất là xem lại Dockerfile đã được sử dụng để xây dựng hình ảnh.


Khi tôi chạy cái này trên windows với hình ảnh Ubuntu mới nhất, tính đến hôm nay, unamevừa quay lại Linux, uname -avừa quay lạiLinux 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 là VM Docker nhúng, là hệ điều hành máy chủ lưu trữ với các container chạy trên Docker cho Windows.
BMitch

"uname" sẽ cung cấp cho bạn thông tin chi tiết về máy chủ lưu trữ bên dưới, chứ không phải vùng chứa (ngay cả khi bạn chạy nó trong vùng chứa).
Trondh

@Trondh Tôi tin đó là những gì tôi nói. Có một cái gì đó trong câu trả lời cần phải được sửa chữa?
BMitch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.