Arnon Hongklay

My Second Post!

ก่อนที่เราจะรู้จัก docker ได้นั้น เราต้องมาทำความรู้จักกับ linux containers กันก่อน

linux containers คืออะไร? (LXC) เป็นวิธีการทำงานแบบเสมือนระดับ OS สำหรับทำงานแยกจากระบบปฎิบัติการหลัก แต่ไม่ใช่แบบเดียวกับ Virtual machine โดย LXC จะทำการแชร์ Linux Kernel กับ OS หลักและทำงานเสมือนว่าตัวเองเป็น OS

Linux Container

จากรูป จะแสดงถึงลักษณะของ LXC

มาถึง Docker กันบ้าง docker เป็น lightweight container ซึ่งแน่นอนว่าต้องมี Size ที่น้อยกว่า LXC แน่นอน เพราะ docker ทำงานในระดับ Process เช่นถ้าต้องการโปรแกรม 1 ตัวนำไปใส่ใน Container ก็จะทำการเก็บคำสั่งทุกคำสั่งที่ได้พิมพ์ไว้ เพราะฉะนั้นถ้า เราพิมพ์คำสั่งอะไรที่ไม่เกี่ยวกับการทำงานใน Container นั้นๆ จะทำให้ Size ใหญ่จนเกินความจำเป็น โดยทั่วไปจะทำงานอัตราส่วน 1 process = 1 container และนำ container ไป deploy ใช้งานได้ตามที่เราต้องการ

ยกตัวอย่างให้เห็นภาพ

สร้าง Container Apache version 2.2 สร้าง Container PHP 5.5 สร้าง Container MySQL v.xxx จะเห็นว่าเรามี 3 container ทั้งหมดจะเก็บเป็น process และเมื่อเรานำ Container ทั้ง 3 ตัวไป deploy ใส่ server ที่เราต้องการ ก็จะได้ software และ version ที่ตรงกับ container ที่ได้ทำการ freezing ไว้ แล้วจะใช้ยังไง ?

*** เราจะมองเห็นประโยชน์ก็ต่อเมื่อ เราต้องการจะทำ server ตัวใหม่โดยเราต้องการ software และ version เดิม การที่เราจะ install ด้วยตัวเองทั้งหมดก็คงจะไม่เหมือน 100% หรือถ้าเราเขียน script ล็อค version ไว้ก็จะใช้เวลานานเกินไปเพราะอย่าลืมว่าเราต้อง configure software แต่ละตัวอีก docker จึงมีประโยชน์ตรงที่เอา container ไป deploy ใส่ server ตัวใหม่ได้เลยโดยเหมือนเป็นการ cloning จาก server ตัวเก่า เป็นต้น

จะเห็นว่า Virtual Machines กับ Docker ทำงานต่างกัน โดย docker จะใช้งานแค่ kernel ตามหลักของ LXC

ทั้งนี้เราสามารถทดลองใช้งานได้โดยกด https://www.docker.com/tryit/

การติดตั้ง DOCKER MAC OS X

การติดตั้งบน Mac OSX นั้นสามารถติดตั้งโดยใช้ Boot2Docker เพื่อที่ใช้ docker command ได้สามารถเลือกวิธีนี้ได้ถ้าเราคุ้นเคยกับ Command line

มีอีกหนึ่งทางเลือกในการติดตั้ง docker บน Mac OSX คือ https://kitematic.com จะเป็น graphical user interface (GUI) ให้สามารถใช้งานได้ง่ายขึ้น

ในที่นี้ผมจะแนะนำ Boot2Docker เพราะการใช้งานจะสะดวกและรวดเร็วกว่า (ความเห็นส่วนตัวครับ)

  1. เราสามารถ download และติดตั้งได้ที่ https://github.com/boot2docker/osx-installer/releases/tag/v1.6.2 เลือก download Boot2Docker-x.x.x.pkg
  2. จากนั้น Dubble Click เพื่อทำการติดตั้ง โดยลากไปวางไว้ที่ Applications Directory
  3. ในการติดตั้งไฟล์ binary ได้นำไปไว้ที่ /usr/local/bin เรียบร้อยแล้ว

เรียนรู้ key concept กันก่อน

การติดตั้ง docker บน linux สามารถทำได้เลย โดยสามารถทำงานได้ทั้ง localhost และ docker host เช่น 127.0.0.1:8000, 0.0.0.0:8080 เป็นต้น ดังรูปด้านล่าง

Posted May 7, 2015

Written by Non who lives and works in Bangkok building useful things. You should follow him on Facebook