EP1 Docker ทีเล่น ทีจริง

Supphachoke Suntiwichaya
NECTEC
Published in
2 min readSep 10, 2017

ขอออกตัวไว้ก่อนว่า Docker สำหรับผมรู้แค่หางอึ่ง พอทำงานกับมันได้ ลึกๆ ยากๆ ก็ไม่รู้หรอก อันไหนยากนักก็ให้ Ops เป็นคนจัดการ ดังนั้นถ้าใครเป็น Dev แล้วอยากลองก็ลองมาอ่านกันได้ครับ ปูพื้นเพื่อก้าวต่อไป

เพื่อนๆ น้องๆ หลายคนสนใจใช้งาน Docker สำหรับพัฒนาระบบ รอบๆ ตัวก็เคยจัดอบรมไปสองสามรอบ แต่เมื่อไม่ได้ใช้จริงจังมันก็ต่อไม่ติด เลยมีเสียงกระซิบมาว่า เขียนบ่นๆ ไว้บ้างเผื่อกลับมาอ่านวันหลังจะได้ทำตาม จริงๆ มันมีคนเขียนเกี่ยวกับ Docker ไว้เยอะนะเพราะมันเกิดมานานพอสมควร แต่ก็มีหลายคนยังลังเล ว่าจะใช้ได้จริงๆ หรือเปล่า แต่สำหรับผม ทั้ง Dev และ Production หลายตัวก็ใช้อยู่ ตั้งใจไว้ว่าใช้เวลาว่างก่อนนอนหรือตอนที่เบื่อๆ บ่นๆ เอาไว้แบบภาษาของตัวเอง ซึ่งอาจจะไม่ตรงกับคนอื่นบ้าง แต่ก็พอถูไถไป แต่ทั้งนี้ก็ชี้แนะกันได้นะครับถ้าไม่ถูกหรือพูดไม่หมด

Docker คืออะไร ? อธิบายสั้นๆ มันคือการจับเอาสภาพแวดล้อมที่พอเพียงและเอื้ออำนวยให้ Service ของเราทำงานได้มายัดลงไปในก้อนๆ หนึ่งเรียกว่า Image แล้วเอา Image ที่ได้ไปเรียกใช้งานเรียกว่า Container โดย 1 Image สามารถ run เป็น Container ได้หลายตัวแบบ run กันจนกว่าทรัพยากรของระบบหมดก็ได้ ส่วนลึกก็ไล่ไปอ่านกันเอาเองนะ หุหุ

ยกตัวอย่างง่ายๆ เช่น

ความอยาก: เราต้องการทำ service ด้วยภาษา A version B บน Linux C

วิธีสนองความอยาก:

ขั้นแรก: ค้นหา Image ภาษา A บน Docker hub (https://hub.docker.com)

ต่อมา: ถ้าเจอและ เป็น Image ที่ใช้ Linux C ก็โชคดี ให้รีบดูว่ามันยัง Active ไหม และมี version ที่ต้องการไหม และ ที่สำคัญเค้าเขียนวิธีใช้ไว้ให้หรือเปล่า อันนี้สำคัญ เพราะบางทีเราไม่รู้หรอกว่าเราต้องทำยังไงบ้าง

ถ้าไม่เจอละ ?: ถ้าโชคร้ายไม่มีคนทำไว้ให้ เราก็ทำเองสิ

ขั้นแรก: ก็หา Image ของ Linux C ให้เจอเมื่อเจอแล้วก็เอามาเป็นตัวตั้ง

ต่อมา: ก็ยัด ภาษา A และ พลพรรคเท่าที่ใช้เท่านั้นลงไป (ถ้าเป็น Image สำหรับ Dev ก็หยวนๆ ลงเยอะได้) เมื่อทำเสร็จก็ใช้ จบ !

เป็นตัวอย่างคร่าวๆ ว่าชีวิตคนใช้ Docker เค้าทำยังไงกัน จะว่าไป Docker มันมีทั้งความยากและความง่ายในเรื่องเดียวกัน คือ ถ้าเรารู้ว่า Service ที่เรา Dev มันใช้อะไรบ้าง มีขั้นตอนการติดตั้งแบบไหน ต้องปรับแต่งยังไง มันก็จะเป็นเรื่องง่าย แต่ถ้าเราไม่รู้เลยว่าต้องใช้อะไร ติดตั้งยังไง ปรับแต่งที่ไหน อันนี้งานเข้าครับ Docker ก็จะเป็นนรกสำหรับคุณ เผลอๆ โปรเจ็คอาจจะพบกับปัญหาไม่ว่าใช้ระบบอะไร ฟันธง! บางทีการพยายามใช้ Docker ของคุณอาจจะช่วยเพิ่มทักษะในงานที่คุณกำลังทำให้เพิ่มมากขึ้นก็ได้ บางคนอาจจะกลัวการเริ่มต้น จริงๆ ถ้าผมไม่ใช้ Docker ผมก็ไม่รู้หรอกว่า Docker มันช่วยงานผมยังไง ตอนแรกๆ นี่โคตรจะงง ทำไมต้องใช้มันนั่งฟัง นั่งอ่านคนอื่นเล่าก็เหมือนจะเข้าใจนะ จนมาแอบเล่นมันจริงๆ พยายามปลุกมันให้ใช้งานได้ด้วยตัวเราเอง มันก็จะค่อยๆ เข้าใจขึ้น (ทุกวันนี้ก็ใช้อยู่ไม่กี่คำสั่ง ฮา)

EP นี้คงแค่เกริ่นๆ สำหรับมือใหม่นะครับ ใครเชี่ยวแล้วก็ทำเป็นไม่เห็นหรืออาจจะแนะนำเพิ่มเติมได้ :P

ก่อนจะปิด EP นี้ใครสนใจเดินไปกับผมก็เอา Docker มาลงโดยพลัน ใครใช้ OS อะไรก็เอามาลงซะนะ การติดตั้งผมคงไม่สอนเพราะมันไม่ยาก ลงได้ทั้ง Linux Mac และ Windows มันมีความยากง่ายต่างกันไปแล้วแต่ OS เค้าว่ากันว่า Windows จะยากหน่อย ก็ไปอ่านคู่มือในเว็บกันนะ ส่วน Mac ก็ไม่ยากมากมายอะไร ยกเว้นคนที่ใช้เครื่องรุ่นเก่าๆ CPU อาจจะไม่ Support แต่ถ้าเครื่องใหม่ๆ ก็น่าจะได้ ส่วน Linux คงไม่มีอะไรง่ายไปกว่านี้แล้ว ไปอ่านวิธีติดตั้งและ Download ได้ที่ https://www.docker.com/community-edition

แล้วเจอกัน EP2 อาจจะตามมาติดๆ เพราะเนื้อหา EP1 ไม่มีเยื่อมีแต่น้ำ ฮาๆ เจอกันใหม่ Byeๆ

--

--