🐳
Docker คืออะไร?
Platform Container ที่แพ็กแอปพร้อม dependencies เข้าด้วยกัน Build ครั้งเดียว รันได้ทุกที่ สภาพแวดล้อมเหมือนกันเสมอ
Solomon Hykes2013Go LanguageApache 2.0Linux Containers
🔄 Docker Flow: Code → Container → Cloud
📋 ขั้นตอนการทำงาน Docker
1
📄Developer
เขียน Dockerfile กำหนด Base image, Copy code, ติดตั้ง dependencies, Expose port
2
🔨Docker CLI
docker build -t myapp:1.0 . → อ่าน Dockerfile → สร้าง Image แบบ Layer
3
🏗️Docker Engine
แต่ละคำสั่ง (RUN, COPY, ADD) สร้าง Layer แบบอ่านอย่างเดียว Layer ถูก Cache เพื่อความเร็ว
4
☁️Docker Registry
docker push myapp:1.0 → Upload Image ไปยัง Docker Hub / GitHub Container Registry / ECR
5
📥Server / CI
docker pull myapp:1.0 → Download Image บนเครื่องใดก็ได้ (Dev / Staging / Production)
6
📦Docker Engine
docker run -p 3000:3000 -d myapp:1.0 → สร้าง Container จาก Image → เริ่ม Process
7
🔒Container
Process ที่แยกออกมา มี filesystem, network, environment variables เป็นของตัวเอง ใช้ Kernel ของ Host
8
🏗️Docker Compose
docker-compose up → เริ่มหลาย Container พร้อมกัน (app + db + redis + nginx)
9
🚀Kubernetes (K8s)
Orchestrate Container ขนาดใหญ่: Auto-scaling, Load balancing, Self-healing, Rolling update
⌨️ คำสั่ง Docker ที่ใช้บ่อย
docker build -t name:tag .Build image จาก Dockerfile ในโฟลเดอร์ปัจจุบันdocker run -p 3000:3000 -d nameรัน Container, Map port, โหมด Detacheddocker psแสดง Container ที่รันอยู่ทั้งหมดdocker logs container_idดู Log stdout/stderr ของ Containerdocker exec -it id bashเปิด Shell ใน Container ที่รันอยู่docker-compose up -dเริ่ม Service ทั้งหมดจาก docker-compose.ymldocker push registry/name:tagPush Image ไปยัง Docker Registrydocker system pruneลบ Image, Container, Volume ที่ไม่ใช้🎯 ทำไมต้องใช้ Docker?
✅
ความสม่ำเสมอ
"ทำงานบนเครื่องฉันนะ" ไม่มีอีกแล้ว Container เดียวกันทำงานเหมือนกันทั้ง Dev, Staging, Production
🔒
การแยก
แต่ละ Service รันใน Container ของตัวเอง ไม่มีปัญหา Dependency ขัดแย้งกัน
🚀
Deploy เร็ว
Image สร้างไว้แล้ว Deploy แค่ Pull และรัน Container ใช้เวลาไม่กี่วินาที
📈
Scalability
รัน Container หลาย Instance หลัง Load balancer Scale แนวนอนได้ง่าย
⏮️
Rollback
Tag Image ตาม Version ย้อนกลับเวอร์ชันก่อนหน้าได้ทันทีหากมีปัญหา
🧩
Microservices
รันแต่ละ Service (auth, payment, notification) เป็น Container แยกกันอิสระ
ต้องการตั้งค่า Docker สำหรับ Deploy? 🐳
เราทำ Containerize แอปด้วย Docker ตั้งค่า CI/CD pipeline และ Deploy ขึ้น Cloud
← กลับหน้าเรียนติดต่อเรา