สิ่งแรกที่ต้องรู้เกี่ยวกับคอนเทนเนอร์คือ:
มันเป็นครั้งแรกและสำคัญที่สุดในกระบวนการ
เมื่อเข้าใจแล้วสามารถเริ่มเข้าใจวิธีการเปรียบเทียบและเปรียบเทียบกับคอนเทนเนอร์เสมือนกับเครื่องเสมือนจริง ภาชนะบรรจุและ VMs ทั้งสองใช้ร่วมกันแยกจากโฮสต์ของพวกเขา วิธีการแยกเป็นความแตกต่างที่สำคัญ
กระบวนการคอนเทนเนอร์ใช้ส่วนขยายไปยังโฮสต์เคอร์เนลระบบปฏิบัติการที่ทำงานเพื่อแยกตัวเองออกจากกระบวนการอื่น ส่วนขยายอื่น ๆ ยังมีการแยกดิสก์และทรัพยากร ภาชนะบรรจุแชร์เคอร์เนลและหน่วยความจำกับโฮสต์ระบบปฏิบัติการ
เครื่องเสมือนใช้ไฮเปอร์ไวเซอร์เพื่อแยก VMs ออกจากโฮสต์ นี่คือเลเยอร์ของซอฟต์แวร์ที่ส่งต่อการร้องขอทรัพยากรจาก "แขก" (VM) ไปยังฮาร์ดแวร์ การแยกดิสก์จัดทำโดยการจำลองเสมือนของดิสก์ VMs ไม่แชร์เคอร์เนลกับโฮสต์ - พวกมันจะโหลดเมล็ดของตนเองเข้าไปในพื้นที่หน่วยความจำสำหรับ VM โดยเฉพาะ
ผลกระทบที่สำคัญอย่างหนึ่งของความแตกต่างนี้คือคอนเทนเนอร์ต้องสามารถทำงานร่วมกับเคอร์เนลกับโฮสต์ได้ ตัวอย่างเช่นไม่สามารถเรียกใช้คอนเทนเนอร์ที่ใช้ Windows Nano Server บนโฮสต์ Linux หรือคอนเทนเนอร์ Ubuntu โดยตรงบนโฮสต์ Windows ตรงกันข้ามเครื่องเสมือนสามารถเรียกใช้เคอร์เนลใด ๆ โดยไม่คำนึงถึงโฮสต์ OS เมื่อรันคอนเทนเนอร์ Linux บนโฮสต์ Windows Docker จะรันคอนเทนเนอร์ใน Linux VM
ความแตกต่างในการปฏิบัติงานมีความคล่องตัว: ภาชนะบรรจุเริ่มและหยุดได้เร็วเท่ากับกระบวนการปกติ วีเอ็มเอสนั้น "หนักกว่า" ซึ่งต้องการทรัพยากรเฉพาะสำหรับพวกเขาและใช้เวลานานกว่าในการเริ่มต้นและปิดตัวลง
ภาชนะบรรจุมีความยืดหยุ่นอย่างมากสำหรับรูปแบบการดำเนินงาน DevOps:
- ภาชนะแยกการพึ่งพาองค์ประกอบของซอฟต์แวร์ นักพัฒนาสามารถใช้ตู้คอนเทนเนอร์เพื่อรับประกันว่าโมดูลแอปพลิเคชันจะทำงานได้ดีบนเครื่องพัฒนาของพวกเขาเช่นเดียวกับใน QA / UA / Production
- ตู้คอนเทนเนอร์ใช้เครือข่ายที่กำหนดโดยซอฟต์แวร์เพื่อสื่อสาร
- คำจำกัดความของคอนเทนเนอร์เป็นข้อมูลที่เปิดเผยและสามารถควบคุมได้
- ระบบการจัดการคอนเทนเนอร์ (Kubernetes, DC / OS, Swarm) สามารถจัดการทรัพยากรฮาร์ดแวร์ (การคำนวณ / RAM / การจัดเก็บ) และการปรับขนาดแบบไดนามิก