อินสแตนซ์ของ FreeBSD Jails หรือ Docker


18

อะไรคือความแตกต่างที่สำคัญระหว่างคุกบน FreeBSD และ Docker บน Linux มีความปลอดภัยมากกว่าหรือมีประสิทธิภาพมากกว่าผู้อื่นหรือไม่ คุกมีอายุมากกว่าอินสแตนซ์ของนักเทียบท่าดังนั้นตัวรหัสอาจมีความปลอดภัยมากกว่า แต่คุกไม่เคย "ติด" ดังนั้นบางทีพวกเขาอาจไม่ดีเท่า Docker อินสแตนซ์? หรือเป็นเพราะ Linux เป็นที่นิยมมากกว่า FreeBSD มาก?

คำตอบ:


24

ฉันจะพูดถึงบางแง่มุมของ FreeBSD jails และ Linux Docker ว่ามีความคล้ายคลึงกันอย่างไรและแตกต่างกันอย่างไร

  • ทั้งสองตอบสนองเป้าหมายเดียวกัน: เป็นการใช้งานเวอร์ช่วลไลเซชั่นเวอร์ชวลไลเซชันเมื่อคุณเรียกใช้แอปพลิเคชั่นในส่วนที่แยกและแยกได้ภายใต้เคอร์เนลเดียวกันและนี่คือจุดสิ้นสุดที่คล้ายคลึงกัน
  • นักเทียบท่าเป็นเครื่องมือที่ใช้เป็นหลักในการเรียกใช้อิมเมจไบนารีที่เตรียมไว้ซึ่งสามารถรับได้จากที่เก็บข้อมูลสาธารณะหรือส่วนตัวต่างๆ คนส่วนใหญ่ใช้วิธีนี้ คนน้อยสร้างของตัวเองและอัปโหลดไปยังที่เก็บเหล่านั้น
  • FreeBSD jails นั้นเหมือน LXC ใน Linux: มันเป็นวิธีสร้างภาชนะของคุณตั้งแต่เริ่มต้น คุณสร้างมันขึ้นมาติดตั้งซอฟต์แวร์ลงในนั้นและนั่นก็เป็นทั้งหมด - มันสามารถถือเป็น FreeBSD ภายใน FreeBSD ไม่มีวิธีที่ง่ายในการส่งออกคอนเทนเนอร์นั้นเป็นซอฟต์แวร์ชิ้นเดียวเช่นใน Docker คนส่วนใหญ่ที่ใช้ FreeBSD, au contraire มักจะสร้างชิ้นส่วนของตัวเองของ FreeBSD ภายในคอนเทนเนอร์ตั้งแต่เริ่มต้น (เช่นจากการติดตั้งระบบพื้นฐาน) ติดตั้งซอฟต์แวร์จากระบบ FreeBSD Ports หรือจากแหล่งที่มา FreeBSD jails จึงมีความเป็นมิตรน้อยกว่าและมีต้นทุนการใช้งานเริ่มต้นสูงขึ้น
  • ในทำนองเดียวกันกับคอนเทนเนอร์ของ LXC ที่ยังคงอยู่อย่างต่อเนื่อง FreeBSD jails ยังคงอยู่เช่นเดิม การเปลี่ยนแปลงทั้งหมดยังคงอยู่ระหว่างการบูท อย่างที่ฉันบอกไปมันเป็นเพียงส่วนหนึ่งของระบบปฏิบัติการในระบบปฏิบัติการเดียวกัน (แม้ว่าซอฟต์แวร์เวอร์ชั่นผู้ใช้อาจแตกต่างกันไปจนกว่า ABI จะยังคงอยู่ในเคอร์เนล FreeBSD) ซึ่งหมายความว่าคุณจะไม่สามารถกระทำการเปลี่ยนแปลง - พวกเขามุ่งมั่นที่เมื่อพวกเขาถูกสร้างขึ้น
  • จากทั้งหมดข้างต้นเป็นที่ชัดเจนว่าทำไมคอนเทนเนอร์ FreeBSD ไม่สามารถมีเลเยอร์ orchestration ที่คล้ายกันเช่น Docker ทำ: ไม่มีพอร์ตที่เผยแพร่ไม่มีวอลุ่มไม่มีลิงก์หรือการเชื่อมต่อเมตาระหว่างคุกที่แตกต่างกัน อินเทอร์เฟซที่ระบบปฏิบัติการเครือข่ายมอบให้คุณเท่านั้น: ซ็อกเก็ตเครือข่าย, ซ็อกเก็ตยูนิกซ์, จุดเชื่อมต่อทั่วไป
  • แน่นอนว่าไม่มีข้อ จำกัด เกี่ยวกับผู้ที่สามารถสื่อสารกับผู้ที่อยู่ในคุก FreeBSD เนื่องจากไม่มีใน Docker
  • คุณสามารถเรียกใช้อิมเมจ native docker ใน FreeBSD ได้เพราะอย่างน้อยบางส่วนได้รับการสนับสนุน docker ภายใต้ FreeBSD แต่เนื่องจาก Linux ฟรีฉันแนะนำอย่างยิ่งให้ต่อต้าน layer (มาพร้อมกับโมดูลเคอร์เนล FreeBSD) ซึ่งมีข้อ จำกัด ที่ทราบ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับนักเทียบท่าบน FreeBSD มันเคยทำงานในคุก (ลองนึกภาพการแยกเป็นสองเท่า :)) มันเป็นไปได้ในฐานะพอร์ตโดย dev หลักของ FreeNAS ตามที่พวกเขาต้องการใช้มันใน distro นั้น นี่คือบทความหนึ่งจากพวกเขาพูดคุยเกี่ยวกับมันและหน้าวิกิพีเดียเก่าสำหรับมัน ตั้งแต่นั้นมาพวกเขาหยุดการบำรุงรักษาและดูเหมือนว่าจะไม่ทำงานอีกต่อไป เพิ่มเติมที่จะติดตามในความคิดเห็นต่อไป
Vrakfall

นี่คือการโพสต์ฟอรั่มที่ผ่านมาขณะนี้การพูดคุยเกี่ยวกับสถานะเทียบท่าใน FreeBSD อุปกรณ์ประกอบฉากไปที่ Phishfry ที่นั่นสำหรับข้อมูลบางอย่างที่ฉันทิ้งไว้ที่นี่ ยังคงเป็นไปได้ที่จะใช้นักเทียบท่าบน FreeBSD โดยใช้งานใน Linux เสมือน (bhyve, virtualbox, ฯลฯ ... ) และใช้พอร์ตเฉพาะไคลเอ็นต์ซึ่งยังคงใช้งานได้และเชื่อมต่ออยู่ หลังจากboot2dockerทั้งหมดถูกสร้างขึ้นมาเพื่อใช้นักเทียบท่าแบบนั้นใน MacOS
Vrakfall

และเรารู้ว่า MacOS เป็น (น่าอับอายไอนี้เป็นของฉันดื้อดึงบิต) ท่าเรือ BSD แต่ทั้งหมดนี้แน่นอนว่าเป็นเพียงสภาพแวดล้อมการพัฒนาและไม่สามารถนำไปใช้ในการผลิตได้ นี่คือสำหรับผู้ที่ต้องการทำงานกับ FreeBSD และสามารถพัฒนาสิ่งที่นักเทียบท่าสำหรับงาน / งานอดิเรก / อะไรก็ได้
Vrakfall

โอ้และฉันลืมที่จะพูด แต่ที่คุณกล่าวถึงมันเก่าdocker-freebsdพอร์ตแน่นอนใช้ของ FreeBSD Linuxulator
Vrakfall

ไม่ใช่ว่าฉันต้องการเรียกใช้ภาพสาธารณะ ตัวอย่างเช่นหากฉันไม่ต้องการใช้เวลานับไม่ถ้วนในการเรียนรู้เรื่องความปลอดภัยฉันจะไปที่ dockerhub และเขียนใน "hardened": hub.docker.com/search?q=hardened&type=imageและเรียกใช้บางอย่างจากที่นั่น มันเพิ่มประสิทธิภาพอย่างมากมายเมื่อเทียบกับการสร้างภาชนะ FreeBSD ของฉันเองตั้งแต่ต้นโดยไม่ต้องเป็นผู้เชี่ยวชาญด้านความปลอดภัย แต่ถ้าคุณมีทางเลือกอื่นในการแก้ปัญหาอย่างรวดเร็วกรุณาแชร์! :-)
inf3rno
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.