IT

รู้จักกับ Kitematic – GUI Toolbox สำหรับ Docker

ก่อนหน้านี้ ถ้า Windows User / Mac User ต้องการใช้ Docker จำเป็นต้องโหลด Boot2Docker มาเสียก่อน หลังจากนั้นก็ให้ Boot2Docker สร้าง Virtual Machine บน VirtualBox สำหรับเรียกใช้งาน Docker อีกที เพราะว่าตัว Docker นั้นซัพพอร์ตการทำงานแค่บน Linux เพียงเท่านั้น นักพัฒนาถ้าจะใช้ Docker ก็จะต้องเปิด Boot2Docker ขึ้นมา หลังจากนั้นจึงสั่งคำสั่งของ Docker ผ่าน Shell ได้ การใช้งานเหมือนจะง่าย แต่สุดท้ายแล้วนักพัฒนาก็ยังต้องมาจำพารามิเตอร์ตัวนั้นตัวนี้สำหรับผูก Container อยู่ดี

Kitematic - GUI Interface for Docker
Figure: Kitematic – GUI Interface for Docker

Kitematic นั้นเรียกว่าเป็น GUI Interface สำหรับ Docker ครับ หลังจากที่ Docker แฮบมาอยู่ในอนาจักร Docker ก็ออกประกาศแถลงว่าต่อไปนี้ เราจะใช้ Docker Toolbox แทน Boot2Docker เดิม และใน Toolbox นี่เอง ก็มี Kitematic แพครวมมาให้ด้วยแล้ว

ในตอนนี้คงยังไม่ได้พูดถึง Docker Machine ที่นำมาแทนที่ Boot2Docker แต่ผมจะมาแนะนำถึง Kitematic เสียก่อน ว่า Kitematic มาช่วยอะไร และใน Kitematic นั้น มีอะไรให้เราเล่นบ้าง

 

Kitematic Search

เมื่อเปิด Kitematic ขึ้นมา สิ่งแรกที่เราได้ใช้งาน น่าจะเป็นฟังก์ชั่นค้นหา Docker Image ที่เราต้องการจะนำมาใช้งานครับ ถ้าเทียบกับ Docker Command Line มันก็คือการใช้คำสั่ง docker search  นั่นเอง

การค้นหา Image ใน Kitematic นั้นไม่แตกต่างจาก Command Line สักเท่าไหร่ แค่ดูสวยงามขึ้นเล็กน้อย แต่หลังจากค้นหาเจอ Image ที่ต้องการแล้ว เราสามารถคลิ๊กเลือกติดตั้งได้เลย

Kitematic ค้นหา Image
Kitematic Search for Image

 

Tag Version

กรณีที่ไม่อยากจะเอาเวอร์ชั่นล่าสุด เราสามารถเลือก Tag Version ของ Image ที่เราต้องการจะใช้ได้ครับ จากตัวอย่างในภาพ คือตัว Ubuntu Image ครับ สามารถเลือก 14.04LTS, 13.10 ก็ได้ตามความต้องการ

Kitematic Select Image Tags
Kitematic Select Image Tags

 

วิธีสร้าง Container ง่ายเพียงปลายนิ้ว

ต่อไป คือในขั้นตอนการสร้าง Container ครับ ตรงนี้กด Create ได้เลย หลังจากนั้น Kitematic จะโหลด Image มาพร้อมกับสั่งรันให้เราด้วยเลย docker pull <image> && docker run

สำหรับคนที่ไม่รู้จัก Docker มาก่อน ผมเขียนอธิบายไว้เบื้องต้นตรงนี้ว่า จากเดิมแทนที่เราจะต้องมาดาวโหลด Package ทีละตัว เพื่อใช้กับแอพลิเคชั่น 1 ตัว เช่น WordPress, PHP, MySQL เราก็ไม่ต้องทำอย่างนั้นแล้ว ในแต่ละ Image File จะมีคนเขียนไฟล์ที่ระบุถึงว่าซอฟแวร์ตัวนั้นๆ จะต้องติดตั้งอะไรเพิ่มเติมบ้าง

บาง Image อาจจะเอามาสร้างเป็น Container พร้อมใช้งานได้เลย หรือว่าบาง Image อาจจะต้อง Link กับ Container ตัวอื่นๆ เช่นตัวของ WordPress Official Container จะต้องโหลด MySQL แยกต่างหากครับ

ในตัวอย่างนี้ เป็นการดาวโหลด hello-world-nginx image และรันขึ้นมา พร้อมใช้งานได้ทันทีครับ ตรงนี้ Docker Container ได้ผูกพอร์ตของตัว Container เข้ากับ Host เรียบร้อยเลยที่พอร์ต 32773 ครับ

สร้าง Container ใน Kitematic
สร้าง Container ใน Kitematic

 

Container Log

เมื่อเรา Create Container เรียบร้อย ตัวของ Kitematic จะสั่งรันให้เราด้วยเลย เราไม่ต้องไปสั่งรันอีกรอบ เสร็จแล้วก็ขึ้น Log มาให้เราของ Container ตัวนั้นๆ ครับ

Kitematic Container Log
Kitematic Container Log

Container Environment

กรณีที่ Container ที่สร้างขึ้นมา จำเป็นต้องกำหนด Environment Variable ก็ทำได้ง่ายๆ ผ่านหน้า Settings ครับ ตรงนี้ ต้องไปอ่านเพิ่มเติมจาก Docker Hub ในหน้าของแต่ละ Image ที่เราดาวโหลดมา ว่าจะมี Environment Variable อะไรให้เราลองเล่นได้บ้าง

Kitematic Container Setting
Kitematic Container Setting

 

เอาหละครับ มีเครื่องมือง่ายๆ ให้แบบนี้เรา รีบไปใช้งานกันให้ไวเลยนะครับ เรียนง่าย สอนง่าย ใช้งานได้ดีครับ ในตอนนี้เราแค่พูดถึงการติดตั้งง่ายๆ เท่านั้นครับ จริงๆ แล้ว แม้ Kitematic จะเข้ามาช่วยในการจัดการ แต่ว่าก็ยังใช้งานได้แค่ระดับพื้นฐานเท่านั้น

ในส่วนของ Docker Toolbox เอง เครื่องมือบางอย่างก็ยังขาดหายไปอยู่ เช่น Windows User ก็ยังคงต้องรอ Docker-Compose กันต่อไปครับ — Docker Compose นั้นเป็นเครื่องมือที่เอาไว้เขียน Configuration File ซึ่งสามารถช่วยในการลิงค์ระหว่าง Container สามารถทำได้ง่ายขึ้นครับ แต่ในเวอร์ชั่นนี้ยังไม่ได้ซัพพอร์ต ก็คงต้องรอกันต่อไปครับ

ในการใช้งานจริง แต่ละ Container อาจจะต้องผูกติดกัน หรือว่า อาจจะต้องปรับเปลี่ยนพอร์ตที่เชื่อมกับโฮสเสียใหม่ ตรงนี้ Kitematic ยังทำไม่ได้ ได้แต่สั่งผ่าน Docker CLI อีกทีครับ สำหรับ Command Line ถ้าเป็น Ubuntu User ลองไปอ่านบล็อกของ ThaiOpenSource ครับ ส่วน Boot2Strap ดูของ Somkiat.cc ถ้าเนื้อหาในนี้ง่ายเกินไป แนะนำไปอ่านบล็อกของคุณ Anuchit ครับ

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *