![]()
![]()
ในงาน
DockerCon ทาง Docker ทำการปล่อย 2 project ใหม่ออกมา คือ
- LinuxKit
- Moby project
โดยที่ LinuxKit นั้นคือ
Toolkit สำหรับการสร้าง custom Linux distribution ตามความต้องการ
ซึ่งมีขนาดที่เล็ก นั่นคือมีเท่าที่ต้องการเท่านั้น
รวมทั้ง service ต่าง ๆ นั้นอยู่ใน container ทั้งหมด
ที่สำคัญ immutable อีกด้วยนั่นคือ สร้างมาแล้วไม่สามารถเปลี่ยนแปลงได้
ปล. ขนาดของ image ที่เล็กที่สุดคือ 35MB
ส่วน Moby project นั้นเป็นเครื่องมือที่ Docker ใช้ในการ
รวม component ต่าง ๆ เข้าด้วยกัน ซึ่งปัจจุบันมีมากว่า 80 component
เพื่อสร้าง product ต่าง ๆ ออกมาให้ใช้งาน เช่น
- Docker for Mac
- Docker for Windows
- Docker for AWS
- Docker for Azure
เปรียบได้กับ
ระบบการผลิตรถยนต์นั่นเอง แสดงดังรูป
![]()
มาเริ่มต้นใช้งาน Moby project กันนิดหน่อย
ขั้นตอนที่ 1 ติดตั้ง Moby
ผมทำการติดตั้งผ่าน go get เลย เพราะว่าง่ายดี
ด้วยคำสั่ง
[code]
$go get -u github.com/linuxkit/linuxkit/src/cmd/moby
[/code]
ทดสอบใช้งานนิดหน่อย
[gist id="53c1dc2cff4fff5c69d87dfd68357186" file="moby.txt"]
ขั้นตอนที่ 2 ลองใช้งานจากตัวอย่างสิ เพื่อทำการ build image
โดยนำตัวอย่างมาจาก linuxkit นั่นเอง
ซึ่ง configuration อยู่ในรูปแบบไฟล์ yml ดังนี้
[gist id="53c1dc2cff4fff5c69d87dfd68357186" file="linuxkit.yml"]
จากนั้นทำการ run ด้วยคำสั่ง moby build ดังนี้
แสดงการทำงานตั้งแต่การ init, onboot และ การเพิ่ม service container ต่าง ๆ
[gist id="53c1dc2cff4fff5c69d87dfd68357186" file="build.txt"]
ผลลัพธ์ที่ได้จากการ run คือไฟล์ต่าง ๆ ดังนี้
- linuxkit-bzImage
- linuxkit-efi.iso
- linuxkit.iso
- linuxkit-cmdline
- linuxkit-initrd.img
ขั้นตอนที่ 3 Run สิรออะไร
[gist id="53c1dc2cff4fff5c69d87dfd68357186" file="run.txt"]
ใช้เวลาในการ boot นิดหน่อย
จากนั้นทำการดูว่ามี service container อะไรทำงานด้วย runC ดังนี้
[gist id="53c1dc2cff4fff5c69d87dfd68357186" file="runc.txt"]
จะเห็นได้ว่ามี nginx ทำงานอยู่นะ
ดังนั้นลองทดสอบใช้งานสิ
[gist id="53c1dc2cff4fff5c69d87dfd68357186" file="nginx.txt"]
จากนั้นดู configuration ของ nginx หน่อย
[gist id="53c1dc2cff4fff5c69d87dfd68357186" file="nginx-config.txt"]
มาถึงตรงนี้เราสามารถสร้าง Linux distribution ของเราได้เองแล้ว
โดยทุกอย่างทำงานในโลกของ container นั่นเอง
เปรียบได้กับการต่อ Lego นั่นเอง
ส่วนรายละเอียดเชิงลึกต้องไปศึกษาเพิ่มเติมต่อไปครับ
สวัสดี Moby project !!!
Reference Websites
http://www.geekwire.com/2017/dockers-new-moby-open-source-project-lego-club-container-systems/
https://ordina-jworks.github.io/conference/2017/04/19/DockerCon-LinuxKit-And-Moby.html
https://www.theregister.co.uk/2017/04/21/docker_renames_open_source_code_moby
https://thenewstack.io/dockers-moby-project-aims-expand-container-usage-beyond-clouds/