ฉันเพิ่งเริ่มศึกษานักเทียบท่าและมีบางอย่างที่ค่อนข้างสับสนสำหรับฉัน ดังที่ฉันได้อ่านบนเว็บไซต์ของนักเทียบท่าแล้วคอนเทนเนอร์ต่างจากเครื่องเสมือนจริง ดังที่ฉันเข้าใจว่าคอนเทนเนอร์เป็นเพียงแซนด์บ็อกซ์ซึ่งมีระบบไฟล์แยกทั้งหมดทำงานอยู่
ฉันยังอ่านว่าคอนเทนเนอร์ไม่มีการติดตั้ง Guest OS แต่จะอาศัยเคอร์เนลระบบปฏิบัติการพื้นฐาน
ทั้งหมดนี้เป็นเรื่องปกติ สิ่งที่ฉันสับสนคือมีภาพ Docker ตั้งชื่อตามระบบปฏิบัติการ เราเห็นภาพอย่าง Ubuntu, Debian, Fedora, CentOS และอื่น ๆ
ประเด็นของฉันคืออะไรรูปเหล่านั้นจริงเหรอ? มันแตกต่างกันอย่างไรในการสร้างคอนเทนเนอร์ตามอิมเมจ Debian กว่าการสร้างเครื่องเสมือนและการติดตั้ง Debian
ฉันคิดว่าตู้คอนเทนเนอร์ไม่มีการติดตั้ง Guest OS แต่เมื่อเราสร้างรูปภาพเราจะยึดมันไว้ในภาพที่ตั้งชื่อตามระบบปฏิบัติการเดียว
นอกจากนี้ในตัวอย่างที่ผมเห็นเมื่อเราทำdocker run ubuntu echo "hello world"
มันก็ดูเหมือนเรากำลังปั่นขึ้น VM กับ Ubuntu echo "hello world"
และทำให้มันเรียกใช้คำสั่ง
ในแบบเดียวกับที่เราทำdocker run -it ubuntu /bin/bash
ดูเหมือนว่าเรากำลังเพิ่ม VM ด้วย Ubuntu และเข้าถึงโดยใช้บรรทัดคำสั่ง
อย่างไรก็ตามรูปภาพเหล่านั้นถูกตั้งชื่อตามระบบปฏิบัติการเกี่ยวกับอะไร? มันแตกต่างกันอย่างไรในการรันคอนเทนเนอร์ด้วยหนึ่งในอิมเมจเหล่านั้นและหมุน VM ด้วย Guest OS ที่เกี่ยวข้อง
เป็นความคิดที่ว่าเราเพิ่งแชร์เคอร์เนลกับโฮสต์ระบบปฏิบัติการ (ดังนั้นเราจึงสามารถเข้าถึงทรัพยากรฮาร์ดแวร์ของเครื่องโดยไม่จำเป็นต้องทำเวอร์ชวลไลเซชันฮาร์ดแวร์) แต่ยังคงใช้ไฟล์และไบนารีของแต่ละระบบที่แตกต่างกันตามลำดับ เพื่อรองรับแอปพลิเคชันใดที่เราต้องการเรียกใช้