รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

Docker คืออะไร และมีข้อดีอย่างไรบ้าง !!!

    เนื่องจากในการพัฒนา application สมัยก่อนทุก application จะใช้ environment เดียวกันซึ่งเป็น environment ของเครื่อง server ซึ่งถ้ามีใครไปลบ library หรือ software บางตัวออกจากเครื่อง server อาจจะทำให้ application ตัวอื่นๆ ทำงานไม่ได้

    Container คืออะไร
    Container คือ การสร้าง virtual environment ที่ทำให้ application ต่างๆ สามารถทำงานได้ด้วย environment ที่แตกต่างกันตามที่ application แต่ละตัวต้องการ และแต่ละ container จะเป็นอิสระจากกัน รวมทั้งเป็นอิสระจากเครื่อง server ด้วย

    Docker คืออะไร
    Docker คือ software ที่ใช้ควบคุม container (docker container) ต่างๆ บน server โดยเป็น virtual machine แบบหนึ่งเหมือน VMware, VirtualBox แต่
    VMs จะเป็นการจำลองทั้ง OS ทำให้มี process ที่ไม่จำเป็นต้องใช้ติดมาด้วย ในขณะที่ container ของ docker นั้นจะไม่มี process ที่ไม่จำเป็นเพราะสิ่งที่มันจำลองคือแค่ process ที่เราต้องใช้ ทำให้ container ที่เรารันนั้นมีความเร็วที่เร็วมาก และยังกิน resource น้อยกว่า แต่ข้อจำกัดคือ OS ที่รัน docker ได้จะต้องเป็น Linux เท่านั้น

    Dockerfile คืออะไร
    Dockerfile เป็นไฟล์ config รูปแบบหนึ่ง
    ที่ใส่ command ต่างๆ ของ Linux ที่เอาไว้ติดตั้ง application เช่น Apache, PHP, MySQL, Nginx, Elasticsearch ใช้เป็นต้นแบบในการสร้าง Docker image

    Docker image คืออะไร
    Docker image คือ ตัวต้นแบบของ container ซึ่งภายในจะประกอบด้วย
    application ต่างๆ ที่มีการติดตั้งไว้เพื่อใช้งานสำหรับ service นั้นๆ รวมทั้งมีการ config ค่าต่างๆ ไว้เรียบร้อยแล้ว

    วิธีสร้าง Docker image

    ให้เราสร้าง Dockerfile ขึ้นมา แล้วก็ใส่ command ต่างๆ ของ Linux ที่เอาไว้ติดตั้ง Apache ลงไป จากนั้นก็สั่งให้ Docker ทำการ build เจ้าไฟล์นี้ให้กลายเป็น Docker image แล้วถ้าเราอยากจะแชร์ image นี้ให้คนอื่นได้ใช้ผ่าน Docker Hub ด้วย เราก็สามารถ push ขึ้นไปผ่าน command ของ Docker ได้เลย

    Docker Container คืออะไร
    Docker Container คือ กล่องที่บรรจุ application ที่พร้อมทำงาน ซึ่งเป็นผลมาจากการรัน Docker image

    Docker Compose คืออะไร
    Docker Compose คือ tool ตัวหนึ่งของ docker ที่จะมาช่วยจัดการการสร้าง container หลายๆตัว ให้เป็นเรื่องที่ง่ายขึ้น เพราะมื่อเรามี Docker image ที่ได้จาก Dockerfile แล้ว เป็นไปได้ว่าเราอาจจะมี image หลายตัว ซึ่งการรัน Dockerfile ทีละตัวทำให้เสียเวลามาก ไหนจะต้องมา start container จาก image ต้องมีการกำหนด port, mount volume, ... ของแต่ละ image อีก โดยการใช้ Docker Compose ด้วยการสร้างไฟล์ที่ชื่อว่า docker-compose.yml ที่เปรียบเสมือนไฟล์ที่ใช้ในการควบคุมการสร้าง container และการกำหนด option ต่างๆที่ใช้ในการรัน container แต่ละตัว

    Docker Toolbox คืออะไร
    Docker Toolbox เป็นชุดรวมเครื่องมือ Docker ที่จำเป็นต้องใช้ ได้แก่ Docker Client, Docker Machine, Docker Compose, Docker Kitematic และ VirtualBox ทำให้นักพัฒนาใช้งาน Docker ได้สะดวกมากขึ้น รวมทั้งนักพัฒนาที่ใช้ระบบปฏิบัติการ Windows และ Mac สามารถใช้งาน Docker ได้ง่ายขึ้นด้วย

    Docker Hub
    คืออะไร
    Docker Hub คือ เว็บที่รวบรวม Docker image ที่ๆ เราสามารถอัพโหลด image ที่ตัวเองสร้างขึ้นไปเพื่อแบ่งปันให้คนอื่นได้ หรือเราจะดาวน์โหลด image ที่คนอื่นทำไว้มาใช้งานเลยก็ได้

    ข้อดีของ Docker 
    1. ไม่ต้องเสียเวลาตั้งค่า Environment เอง
    Docker มีระบบ registry ช่วยให้เราสามารถติดตั้งโปรแกรมหรือ environment ที่เราต้องการได้เร็วขึ้น เพราะว่ามันมีคนทำไว้ให้เราแล้ว โดยเราแค่เพียงโหลด image ตัวนั้นมา และติดตั้ง ก็สามารถใช้ environment นั้นได้เลย ผ่าน Docker Hub โดยเราสามารถ push ตัว image ที่เราสร้างไว้ขึ้นไป หรือเราจะไป pull image ที่คนอื่นสร้างไว้มาใช้ก็ได้

    2. ประหยัดทรัพยากร Server
    ถ้าใครที่ใช้ VM มาก่อน จะพบว่ามันเป็นอะไรที่ช้าและเสียเวลามากๆ กว่าจะโหลดขึ้น แต่ Docker นั่นเร็วมากๆ เพราะว่ามันใช้ OS, CPU และ Memory ร่วมกันกับ Host OS ทำให้มันเบาหวิวเลย ต่างกับ VM ที่ใช้ทุกอย่างแยกกันหมด และการจำลองทั้ง OS ก็ทำให้มีบางอย่างที่เราไม่ได้ใช้ แต่ก็ต้องรัน ทำให้เราเสียทรัพยากรไปฟรี ๆ

    3. ทำให้การ
    ติดตั้งโปรแกรมที่ยากๆ กลายเป็นเรื่องง่าย 

    เช่น เราอาจจะโหลด container ของ Apache, PHP, MySQL มาก่อน แล้วค่อยลง WordPress เพิ่มเข้าไปเอง หรือจะเลือกโหลด container ของ WordPress แบบพร้อมใช้งานมาเลยก็ได้

    หรือบางคนอาจจะจำเป็นต้องใช้โปรแกรมที่ทำยากๆ เช่น อยากได้ Elasticsearch เป็นเมื่อก่อนเราก็ต้องสร้าง VM ขึ้นมาและค่อยติดตั้ง Elasticsearch ซึ่งกินเวลามาก แต่ด้วย Image สำเร็จรูปทำให้เราสามารถติดตั้ง โปรแกรม หรือตั้งค่า Environment ที่เราต้องการได้ภายในเวลาไม่กี่วินาที และเพียงแค่ไม่กี่คำสั่งเท่านั้น

    4. สะดวกในการทำงานแบบทีมงานหลายคน
    โดยถ้าเรามีทีมงานช่วยเขียนโค้ดหลายคน แล้วเราอยากให้เครื่องของเพื่อนมีสภาพแวดล้อมเหมือนเราเป๊ะๆ เลย สิ่งที่เราต้องทำก็แค่ห่อ application ต่างๆ ที่เราได้ลงไว้ ให้กลายเป็น container ของ Docker จากนั้นเราก็บอกให้เพื่อนลง Docker ซะ แล้วเราก็ส่ง container ของเรา ไปให้เพื่อนรัน เพียงเท่านี้เพื่อนของเราก็จะสามารถเริ่มงานได้ทันทีแล้วครับ

บทความที่น่าสนใจ

บทความ ล่าสุด

บทความ ความรู้ด้านไอที, คอมพิวเตอร์ Techonlogy, Gadget, ความรู้เกี่ยวกับคอมพิวเตอร์ กับทาง SoftMelt.com