ระบบปฏิบัติการใดกำลังทำงานอยู่ในคอนเทนเนอร์ Docker ของฉัน


20

ส่วนใหญ่ใช้หนึ่งในสองอย่างนี้ฉันสามารถบอกได้ว่าระบบปฏิบัติการใดกำลังทำงานอยู่ในคอนเทนเนอร์ Docker ของฉัน (อัลไพน์ CentOS ฯลฯ )

แต่คราวนี้ฉันบอกไม่ได้:

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

มีวิธีใดบ้างที่จะได้รับรุ่นที่เป็นข้อความของระบบปฏิบัติการที่ใช้อยู่

คำตอบ:


31

ผมชอบที่จะใช้Screenfetch คุณอาจต้องการลอง

หากคุณมองเข้าไปในรหัสคุณสามารถดูว่ามันเป็นตัวกำหนดการกระจายอย่างไร:

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

และเพื่อครอบคลุม CentOS ด้วย:

  • cat /etc/issue

1
"/ etc / os-release" เป็นแหล่งข้อมูลที่ดี แต่ไม่มีอยู่ใน centOS หากคุณมีเพียงนัดเดียวที่จะตัดสินใจฉันจะพูดว่า: "ls / etc / * release" แต่ถ้าต้องการวิธีที่เป็นสายคุณต้องการทั้ง "cat / etc / os-release" และ "cat / etc / issue" เพื่อครอบคลุมทุกกรณี ขอบคุณทั้งคู่
Bob Yoplait

ใช่พวกเขาทั้งสองทำงานcat /etc/issueและcat /etc/alpine-release!
Julian

7

uname จะบอกคุณเคอร์เนลที่กำลังทำงานซึ่งเป็นเคอร์เนลระบบปฏิบัติการโฮสต์

เมื่อต้องการระบุอิมเมจพื้นฐานของคอนเทนเนอร์ไม่มีวิธีแก้ปัญหาที่รับประกันได้จากภายในคอนเทนเนอร์ คุณสามารถมองหาพอยน์เตอร์จากผู้ค้ารายใหญ่อย่าง Janosch ให้ (/ etc / os-release สำหรับผู้ค้าส่วนใหญ่เช่น Debian, CentOS และ Alpine หรือ / etc / lsb-release สำหรับ Ubuntu) นอกจากนี้คุณยังสามารถตรวจสอบเครื่องมือการจัดการแพ็คเกจหากมีการติดตั้ง (/ etc / apk, / etc / apt, / etc / yum)

ด้านนอกของคอนเทนเนอร์คุณสามารถตรวจสอบภาพและติดตามเลเยอร์เพื่อดูว่าภาพนั้นมาจากที่ใด แต่จะเข้าสู่การตรวจสอบ sha256 checksums วิธีที่ดีที่สุดคือการตรวจสอบ Dockerfile ที่ใช้สร้างภาพ


เมื่อฉันเรียกใช้สิ่งนี้บนหน้าต่างที่มีรูปภาพ Ubuntu ล่าสุด ณ วันนี้unameเพิ่งกลับLinuxมาและuname -aกลับมาอีกครั้งLinux 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 เป็น Docker VM ในตัวซึ่งเป็นโฮสต์ระบบปฏิบัติการที่มีคอนเทนเนอร์ที่ทำงานบน Docker สำหรับ Windows
BMitch

"uname" จะให้รายละเอียดเกี่ยวกับโฮสต์ต้นแบบไม่ใช่ที่เก็บข้อมูล (แม้ว่าคุณจะเรียกใช้ภายในคอนเทนเนอร์)
Trondh

@Trondh ฉันเชื่อว่านั่นคือสิ่งที่ฉันพูด มีคำตอบที่จำเป็นต้องแก้ไขหรือไม่?
BMitch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.