Docker Containers คีย์สำคัญสู่การจัดการแอปพลิเคชันที่ง่าย และมีประสิทธิภาพ

ในยุคที่ความเร็วคือหัวใจสำคัญของธุรกิจ Docker Containers คือกุญแจสำคัญในการเร่งความเร็วให้กับ การพัฒนาแอปพลิเคชันยุคใหม่ จัดเป็นเครื่องมือที่ช่วยให้ทีมพัฒนาสามารถส่งมอบผลิตภัณฑ์ใหม่ๆ ออกสู่ตลาดได้เร็วขึ้น ลดต้นทุน และเพิ่มขีดความสามารถในการแข่งขัน

สารบัญ

Docker Containers คืออะไร ?

ก่อนอื่นผมขอเริ่มต้นด้วยนิยามง่ายๆ ของ Docker กันก่อน ..

“Docker เป็นเหมือนกล่องบรรจุภัณฑ์สำหรับแอปพลิเคชันของคุณ ที่จะช่วยให้สามารถจัดส่งแอปฯไปยังที่ต่างๆ (Environment : สภาพแวดล้อม) ได้อย่างปลอดภัย และง่ายดาย”

และยังเป็น “Open Source Platform ที่ทรงพลัง !”

หรือแม้แต่คำพูดที่ว่า

“Docker คือหัวใจสำคัญของ Microservices และ Cloud Native

กล่องมหัศจรรย์ - Docker Container
กล่องมหัศจรรย์ - Docker Container

ให้ลองจินตนาการว่าคุณมีห้องทดลองวิทยาศาสตร์ส่วนตัวที่สามารถพกพาไปได้ทุกที่ ห้องทดลองนี้คือ Container ที่พร้อมจะรองรับการทดลอง และสร้างสรรค์แอปพลิเคชันของคุณ ไม่ว่าจะเป็นการทดสอบไอเดียใหม่ๆ หรือการนำไปใช้งานจริงในสภาพแวดล้อมที่แตกต่างกัน

Containerization

Containerization คือ “A standardized unit of software” มาตรฐานในการจัดเก็บ และรันแอปพลิเคชันแบบแยกส่วน ทำให้สามารถเคลื่อนย้าย และปรับใช้งานได้ในสภาพแวดล้อมที่แตกต่างกันได้ โดยทำให้ทุกอย่างอยู่ภายใน Container เดียวกัน

VM vs Container แตกต่าง ?

ความแตกต่าง VM vs Container

นักพัฒนาหลายคนคงรู้จัก VM Server กันอยู่แล้ว ซึ่ง Docker Container เป็นการนำเอา VM Solutions หลายตัวมารวมกัน เพื่อให้เราสามารถนำไป Packing และนำไป Deploy ที่ไหนก็ได้ แถมมีขนาดที่เล็กลง โดยไม่จำเป็นต้องแยกลง OS Server ที่ละส่วนทุกครั้ง การ Rollback version ก็ทำได้อย่างง่ายดาย

รู้จัก Docker Components

ทำความเข้าใจ Docker Engine
ทำความเข้าใจ Docker Engine และองค์ประกอบต่างๆ

Docker Engine

หัวใจหลักที่ทำให้ Container ทำงานบนระบบ Host ได้ ประกอบด้วย 3 ส่วน

  • Server (Docker Daemon) มีไว้จัดการ Objects ต่างๆ ของ Docker ได้แก่ Containers Images Network และ Volume โดยจะติดต่อสื่อสารผ่าน API Request เป็นตัวกลาง
  • REST API ตัวกลางการติดต่อสื่อสารกับ Docker Daemon
  • Client (Docker CLI) ส่วนคำสั่งที่ผู้ใช้สามารถโต้ตอบกับ Docker ผ่านทางชุดคำสั่ง เช่น “docker run” “docker build

Docker Images

อิมเมจ หรือพิมพ์เขียวของ Container ที่ใช้กำหนดองค์ประกอบของแอปพลิเคชัน ได้แก่ Library Package ที่จำเป็นต่างๆ ของระบบ โดยสร้างจากไฟล์ชื่อ “Dockerfile”

Docker Containers

คือ instance of a Docker image อธิบายง่ายๆ คือศูนย์รวมทุกอย่างที่จำเป็นต่อการรันแอปพลิเคชัน (Code Library และ System) ในสภาพแวดล้อมที่มีน้ำหนักเบา และพกพาได้

Docker Volumes

กลไกในการจัดเก็บข้อมูลถาวรไว้นอก Container ทำให้ข้อมูลยังคงอยู่แม้จะทำลาย Container ไปแล้ว Volume ช่วยให้ข้อมูลสามารถแชร์ระหว่าง Container หลายตัว หรือระหว่าง Container กับ Host ได้

Docker Networks

เครือข่ายที่ทำให้ Container สามารถสื่อสารกัน หรือสื่อสารกับโลกภายนอกได้

Docker Compose

ผู้ใช้สามารถกำหนด และจัดการแอปพลิเคชันบน Docker ที่มีหลาย Container ได้โดยใช้ไฟล์ YAML (docker-compose.yml) ในการปรับแต่งเพิ่มเติม

Docker Swarm

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

บทสรุป

ในบทเรียนครั้งนี้เราจะขอจบไว้เพียงเท่านี้ก่อน หากใครที่อ่านแล้วยัง งงๆ หรือยังไม่เห็นภาพ (ยังไม่ต้องตกใจ) เราจะมาต่อกันในส่วนถัดไป กับตอนจับมือทำ โดยการใช้ Image File ที่ถูกจัดเก็บไว้ใน Docker Registry มาใช้งานน เพื่อติดตั้ง PHP Apache และ PostgreSQL บน Docker กันน

→ จับมือทำวิธีติดตั้ง PHP Apache และ PostgreSQL บน Docker Container แทน XAMPP

ที่มา : dzone.com , docs docker

AI เปลี่ยนโลก (Admin.earth)
AI เปลี่ยนโลก (Admin.earth)

Blogger technology in programmers' stains.

Articles: 108

Copyright © 2024 - เขียนโค้ดดอทคอม


Verified by MonsterInsights