ความแตกต่างที่สำคัญระหว่างนักเทียบท่าและ Snap คืออะไร


85

ใน c't ล่าสุด (เศร้าpaywalled ) มีบทความเกี่ยวกับถ่ายภาพและ Flatpak

ป้อนคำอธิบายรูปภาพที่นี่

ฟังดูคล้ายกับ Docker แนวคิดมากมายเหมือนกัน ตอนนี้คำถามของฉันความแตกต่างระหว่าง Snap และ Docker คืออะไร กรณีการใช้งานเหล่านั้นแตกต่างกันหรือไม่?

คำตอบ:


109

คุณอาจพบคำพูดของ Mark Shuttleworth "ทำไมเราต้องใช้คอนเทนเนอร์อื่นสำหรับแอพ" ที่ Container Camp ซึ่งเกี่ยวข้องกับคำถามของคุณ เขาพูดโดยทั่วไปเกี่ยวกับ VMs คอนเทนเนอร์และนักเทียบท่าตอนเริ่มต้นดำเนินการต่อเพื่อยึดและวิธีที่พวกเขาพอดีในเวลาประมาณเก้านาทีนี่คือบทสรุปของฉัน:

  • ภาชนะประเภทต่าง ๆ มีลักษณะเหมือนกัน แต่ใช้เพื่อจุดประสงค์ที่แตกต่างกัน
  • ภาชนะบรรจุไม่มีอยู่จริงในระดับเคอร์เนล ความแตกต่างของภาพลวงตาเป็นไปได้ เราสามารถสร้างภาพลวงตาเกี่ยวกับสิ่งที่ผู้ใช้เครือข่ายดิสก์และกระบวนการที่คอนเทนเนอร์มองเห็นได้อย่างอิสระ
  • ประเภทของภาชนะบรรจุที่แตกต่างกันเป็นจริงเกี่ยวกับชั้นเรียนที่แตกต่างกันของภาพลวงตาที่สร้างขึ้น
  • Snaps คือ:
    • ไม่เปลี่ยนรูป แต่ยังคงเป็นส่วนหนึ่งของระบบพื้นฐาน
    • บูรณาการในแง่ของเครือข่ายดังนั้นแบ่งปันที่อยู่ IP ของระบบซึ่งแตกต่างจาก Docker ที่แต่ละคอนเทนเนอร์ได้รับที่อยู่ IP ของตัวเอง
    • ในคำอื่น ๆ หางจะช่วยให้เราเป็นสิ่งที่มี Snaps ให้สิ่งที่นี่กับเรา ตัวอย่างเช่นบนเดสก์ท็อป snap จัดเตรียมแอปไว้
    • สแน็ปไม่ก่อให้เกิดมลพิษส่วนที่เหลือของระบบ มันอยู่ในกล่องของตัวเอง แต่มันยังคงเห็นส่วนที่เหลือของระบบ (อ่านอย่างเดียว) ซึ่งอนุญาตให้พูดคุยและรวมเข้ากับระบบ

คุณถามถึงกรณีการใช้งานที่แตกต่างกันเมื่อเทียบกับ Docker นี่คือสิ่งที่ snaps สามารถทำได้ แต่นักเทียบท่าไม่สามารถ: แอปเดสก์ท็อป บุคคลที่สามสามารถจัดส่งแอปเดสก์ท็อปโดยใช้สแนปและผู้ใช้สามารถติดตั้งและอัปเดตได้อย่างง่ายดาย คอนเทนเนอร์ Docker ไม่สามารถ (ได้อย่างง่ายดาย) โต้ตอบกับผู้ใช้แบบกราฟิกบนหน้าจอโหลดเอกสารจากไดเรกทอรีหลักของผู้ใช้หรือจัดให้มีการประชุมทางวิดีโอผ่านเว็บแคมของผู้ใช้ Snaps สามารถ (เมื่อได้รับอนุญาต)

คุณอาจถามว่าสิ่งนี้ดีกว่าการใช้ PPA แต่เมื่อเปรียบเทียบกับ Docker แล้วก็เหมือนกับถามว่า Docker นั้นดีกว่าการติดตั้งการพึ่งพาในระบบด้วยมือ มันดีกว่า แต่แน่นอนว่าจะได้รับคำตอบที่ดีที่สุดอย่างไรในคำถามที่แยกต่างหากและไม่ใช่เฉพาะนักเทียบท่า


3
นี่ไม่เป็นความจริง. นักเทียบท่าสามารถโต้ตอบกับแอปพลิเคชันเดสก์ท็อป (เมื่อได้รับอนุญาต) github.com/jamrizzi/docker-gtk
Jam Risser

2
ฟังดูเหมือน Sandboxie สำหรับ windows โปรแกรมแซนด์บ็อกซ์สามารถเปิดกล่องโต้ตอบเข้าถึงไฟล์ในเครื่องทั้งหมด แต่เมื่อพวกเขาเขียนพวกเขาก็แค่เขียนลงในแซนด์บ็อกซ์
feedc0de

1
เครื่องมือใดที่คุณลิงก์เพื่อทำแตกต่างจากนักเทียบท่าปกติ คุณสามารถติดตั้งซ็อกเก็ต x11 ของคุณลงในตัวเชื่อมต่อได้โดยไม่ต้องใช้ตัวเชื่อมต่อรุ่นพิเศษ
feedc0de

1
มันไม่ใช่เครื่องมือมันคือการสาธิต
Jam Risser

1
@jamrizzi ดูเหมือนว่าสิ่งที่คุณทำคือเพียงให้นักเชื่อมต่อเข้าถึงซ็อกเก็ต X11 ในสคริปต์ นี่ค่อนข้างไกลจากการให้ผู้ใช้มีส่วนร่วมในกระบวนการนี้ (ซึ่ง "นักเทียบท่าต้องการเข้าถึงการแสดงผลบทสนทนายกเลิกหรืออนุญาต" บทสนทนา?)
Thorbjørn Ravn Andersen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.