dockerc - เครื่องมือคอมไพล์อิมเมจ Docker ให้เป็นไบนารีแบบพกพาที่ทำงานเดี่ยวได้
(github.com/NilsIrl)- เครื่องมือสำหรับคอมไพล์อิมเมจ Docker ให้เป็นไบนารีแบบสแตนด์อโลนที่พกพาได้และรันได้เอง
- สามารถแจกจ่ายไบนารีที่รันได้ให้ผู้ใช้ โดยไม่ต้องใช้คำสั่งอย่าง
docker run,pip install,npm i
คุณสมบัติ
- คอมไพล์อิมเมจ Docker ให้เป็นไบนารีที่พกพาได้
- คอนเทนเนอร์ที่ไม่ต้องใช้สิทธิ์ root
- รองรับ MacOS และ Windows (ใช้ QEMU) : เร็ว ๆ นี้
- รองรับ x86_64 (arm64 จะรองรับในอนาคต)
- รองรับอาร์กิวเมนต์
- รองรับการกำหนดตัวแปรสภาพแวดล้อมด้วย
-e - รองรับการกำหนดวอลุ่มด้วย
-v
วิธีใช้งาน
- ติดตั้ง dockerc จากรีลีสล่าสุด
- สร้างไบนารีผลลัพธ์โดยใช้อิมเมจจาก Docker Hub หรืออิมเมจในคลังของ Docker daemon ภายในเครื่อง
- ไบนารีที่สร้างขึ้นสามารถเรียกใช้งานได้เหมือนไบนารีทั่วไป
- สามารถระบุตัวเลือก
-eและ-vได้ในลักษณะเดียวกับตอนใช้docker run - เข้าถึงบริการเครือข่ายที่ทำงานอยู่ภายในคอนเทนเนอร์ได้โดยตรง โดยไม่ต้องระบุ
-p - ใช้ Skopeo สำหรับโหลดอิมเมจ สำหรับตำแหน่งอื่น ๆ โปรดดูเอกสารที่เกี่ยวข้อง
ความเห็นของ GN⁺
- dockerc เป็นเครื่องมือที่อาจยกระดับการใช้งาน Docker ได้อย่างมาก โดยช่วยให้ผู้ใช้สามารถรันแอปพลิเคชันได้โดยไม่ต้องผ่านขั้นตอนติดตั้งที่ซับซ้อน ซึ่งมีประโยชน์มากโดยเฉพาะกับผู้ใช้ที่ไม่ใช่สายเทคนิค
- ความสามารถในการคอมไพล์อิมเมจ Docker เป็นไบนารีช่วยให้การแจกจ่ายและการดีพลอยง่ายขึ้น ซึ่งช่วยประหยัดเวลาและเพิ่มประสิทธิภาพให้กับนักพัฒนาและผู้ดูแลระบบ
- อย่างไรก็ตาม หากเทคโนโลยีนี้จะได้รับการยอมรับอย่างแพร่หลาย ประเด็นด้านความปลอดภัย ประสิทธิภาพ และความเข้ากันได้จำเป็นต้องได้รับการแก้ไขอย่างเพียงพอ ตัวอย่างเช่น ต้องมีการตรวจสอบว่าไบนารีที่คอมไพล์แล้วปลอดภัยเทียบเท่ากับอิมเมจ Docker ต้นฉบับหรือไม่ และสามารถทำงานได้ราบรื่นในทุกระบบหรือไม่
- อีกหนึ่งโปรเจ็กต์ที่มีความสามารถคล้าย Docker คือ Podman ซึ่งรองรับการรันคอนเทนเนอร์โดยไม่ต้องใช้สิทธิ์ root
- เมื่อนำ dockerc มาใช้ ควรพิจารณาการผสานเข้ากับเวิร์กโฟลว์ Docker เดิม วิธีอัปเดตและจัดการอิมเมจ ตลอดจนขนาดและประสิทธิภาพของไบนารีที่คอมไพล์แล้ว ประโยชน์ของเทคโนโลยีนี้คือความเรียบง่ายในการแจกจ่ายและความสะดวกในการใช้งาน แต่ในทางกลับกันก็ควรพิจารณาอย่างรอบคอบถึงโอเวอร์เฮดที่อาจเกิดขึ้นในกระบวนการคอมไพล์และปัญหาความเข้ากันได้ที่อาจเกิดขึ้น
2 ความคิดเห็น
โอ้ น่าสนใจทีเดียวครับ
ความคิดเห็นจาก Hacker News
นี่เจ๋งมากจริงๆ
ในอดีตฉันเคยใช้และแนะนำ nix-bundle¹ หรือทางการที่เทียบเท่ากันคือ
nix bundle²nix bundleสามารถสร้างได้ไม่ใช่แค่ executable แบบอ้วนๆ แต่ยังรวมถึง Docker image, AppImages และ image/executable รูปแบบอื่นอีกบางแบบการกลับไปใช้ executable แบบพกพาพร้อม OS ในตัวเป็นเรื่องที่ดีจริงๆ
ผู้ใช้กำลังรอให้ผู้คนเริ่มส่ง Dockerfile ที่สร้างคอนเทนเนอร์ Docker สำหรับรันสิ่งพวกนี้มา
มีความประชดประชันเชิงจักรวาลอันยิ่งใหญ่อยู่ตรงนี้
นี่เป็นความคืบหน้าที่เจ๋งมากนะ Nils! ดีใจที่ได้เห็นความก้าวหน้าของโปรเจกต์หลังจากที่คุยกันที่ AGI House
ยังไงก็ยังต้องมีของคนละชุดสำหรับสถาปัตยกรรมอื่นอยู่ดี
ไอเดียดี! แล้วมันทำงานจริงๆ อย่างไร?
ใช้ภาพวาดของ Lant ได้เท่มาก
นี่หมายความว่าอะไร? ผู้ใช้จะสามารถแจกจ่าย executable ของ Ruby แบบพกพาได้โดยไม่ต้องติดตั้ง Ruby ใช่ไหม?