Docker เป็น engine ที่รันบน Linux ตัวนึงที่จะจําลองสภาพแวดล้อมของเครื่อง server ขึ้นมา คล้ายๆกับพวก VirtualBox, VMWare หรือ Virtual Machine ซึ่ง Docker จะแตกต่างจาก VM ตัวอื่นๆคือ **จะทําการจําลองสภาพแวดล้อมของ server ขึ้นมาบน OS เดิม **แต่ VM อื่นๆ จะจําลองระบบขึ้นมาทั้ง OS เลย ดังรูป

จะเห็นว่า VM จําลองขึ้นมาทั้ง OS เลย ทําให้ มี Process ที่รันขึ้นมาโดยไม่จําเป็น ในขณะที่ Docker จะแยก Guest OS ออกมา โดยจะเรียกว่า Container ซึ่งในแต่ละ Container คือการจําลอง Environment สำหรับ 1 Service เท่านั้น(ดูภาพประกอบ) ทําให้มีขนาดเล็ก สามารถรันขึ้นมาได้เร็ว และไม่เปลืองทรัพยากรณ์ของเครื่องเมื่อเที่ยบกับ VM

สําหรับในหัวข้อนี้เราจะมาขยายความ Docker Registry กันซักนิดครับเนื่องจากมันเป็นจุดเด่นของ Docker ซึ่งมันเป็นแนวคิดที่จะจัดการ Docker Image ให้เข้าถึงง่าย สะดวกและรวดเร็ว โดย Docker Registry เป็นที่สําหรับเก็บ Docker Image ที่เราสร้างขึ้น หรือคนอื่นสร้างขึ้น เมื่อเราต้องการจะใช้งาน Docker Image ตัวไหนเราก็ pull มาใช้งานได้เลยเราก็จะได้ Environment ตามนั้นเปะๆ ลองเข้าไปดู Docker Registry ได้ครับที่นี่ครับ hub.docker.com/ สําหรับในเว็บนี้เป็นของ docker เอง ซึ่งมี Docker image ที่คนอื่นๆสร้างไว้มากมายรวมถึง OFFICIAL REPOSITORY (เป็น Docker image ของเจ้าของโปรแกรมทําขึ้นมาเอง)

จริงๆแล้ว Docker เป็น tool ที่อเนกประสงค์มากๆ สามารถนําไปประยุกต์ใช้งานต่างๆมากมาย แต่ที่เห็นได้ชัดเจนก็คือ มันจะช่วยให้เราจัดการ Environment ของ server ได้ง่ายมาก และรวดเร็ว ผมจะยกตัวอย่างนะครับ ถ้าเราจะสร้างเว็บขึ้นมาเว็บนึง สิ่งแรกที่เราต้องทําคือลงโปรแกรมต่างๆ เช่น Apache, nginx, mysql ฯลฯ เมื่อลงโปรแกรมเสร็จ เราก็จะต้องมา Config ค่าต่างๆเพื่อให้มันใช้งานกับเว็บเราได้ ต่อมาเรามีความจําเป็นที่จะต้องเปลี่ยนเครื่อง Server อันเนื่องมาจาก ต้องการเปลี่ยนไปใช้ Server ที่แรงขึ้นเพื่อรองรับคนได้เยอะขึ้น หรือ Server ตัวเก่ามีปัญหา เมื่อ server ตัวใหม่มา สิ่งที่เกิดขึ้นคือ เราจะต้องมานั่งลงโปรแกรมใหม่ ต้องมา Config ค่าต่างๆใหม่ ซึ่งกระบวนการตรงนี้มันค่อนข้างในเวลา Docker จะมาช่วยในการจัดการตรงนี้ โดยเมื่อเราเปลี่ยนเครื่อง Server หรือย้ายเว็บเราไปรันบน Server เครื่องใดๆก็แล้วแต่ เราไม่ต้องมาลงโปรแกรมใหม่ ไม่ต้องมา Config ค่าใหม่ เราสามารถที่จะรันเว็บของเราทั้งเว็บโดยใช้เพียงคําสั่งเดียว ซึ่งมันจะประหยัดเวลาไปได้มาก และช่วยลดความผิดพลาดที่เกิดจากการ config ต่างๆได้
“บนเครื่องผมมันรันได้นะ” คําพูดนี้จะหายไป ถ้าคุณใช้ Docker
สวัสดีครับ ไม่ได้เขียน Blog มานาน วันนี้เอาซะหน่อยเป็นเรื่องสั้นๆที่เกี่ยวกับการ Clone object ใน Javascriptปกติ Object ใน Javascript จะเป็น Referent type หมายความว่า เมื่อเราสร้าง Object ขึ้นมา มันจะสร้าง Reference variable ไว้ใน Stack memory และใช้ Variable ที่เราประกาศ ชี้ไปยัง data ที่อยู่ในหน่วยความจำส่วนของ Heap memory อีกที
ไฟฉาย Jetbeam รุ่น Jet-TH20 เป็นไฟฉายรุ่นที่ที่มีความสว่างสูงสุด 3,450 Lumens แสงพุ่งไกลถึง 350 เมตร จุดเด่นของรุ่นนี้คือ สามารถใช้งานได้ในขณะอุณหภูมิติดลบถึง -20°Cใช้แบตเตอรี่ขนาด 18650 หรือ CR123*2 คุณสมบัติโดยทั่วไปดังนี้
โดยปกติแล้ว Class ต่างๆจะมี Method เป็นของตัวเองอยู่แล้ว แต่ถ้าเราต้องการจะเขียน Method เพิ่มเติมเข้าไป ในกรณีที่เราเป็นเจ้าของ Source code เราสามารถแก้ไข Source code ของเราได้เลย แต่ถ้าในกรณีที่เราไม่ได้เป็นเจ้าของ Source code เรามีเพียงแค่ dll ไฟล์เท่านั้น เราจะทําอย่างไร? ใน .net 3.0 ขึ้นไป เราสามารถเพิ่ม Method เสริมให้กลับ Class ที่ถูกสร้างไว้แล้วได้ โดยจะเรียกว่า Extension Method