กลับไปหน้าบทความ
#Docker#DevOps#Container#Backend#Cheatsheet

Docker Cheatsheet สำหรับนักพัฒนา: คำสั่งพื้นฐานที่ใช้ได้จริง

รวมคำสั่ง Docker พื้นฐานที่นักพัฒนาใช้งานจริง ตั้งแต่การตรวจสอบระบบ ดาวน์โหลด image รันคอนเทนเนอร์ ไปจนถึงการจัดการ volume, network และการทำความสะอาดอย่างปลอดภัย ใช้อ่านทบทวนหรือเซฟไว้เป็นคู่มือย่อได้ทันที

18 มีนาคม 2569อ่านประมาณ 2 นาที

แชร์บทความ

Docker Cheatsheet สำหรับนักพัฒนา: คำสั่งพื้นฐานที่ใช้ได้จริง

Docker Cheatsheet สำหรับนักพัฒนา: คำสั่งพื้นฐานที่ใช้ได้จริง

Docker เป็นเครื่องมือสำคัญสำหรับนักพัฒนายุคใหม่ เพราะช่วยให้เราสร้างสภาพแวดล้อมการทำงานที่สม่ำเสมอ ติดตั้งง่าย และย้ายไปรันบนเครื่องอื่นได้สะดวก บทความนี้รวบรวมคำสั่งพื้นฐานที่ใช้บ่อยในการทำงานจริง แบบสั้น กระชับ และหยิบไปใช้ได้ทันที

1) เริ่มต้นด้วยการตรวจสอบว่า Docker พร้อมใช้งานหรือไม่

ก่อนจะเริ่มใช้งาน ควรเช็กก่อนว่า Docker ทำงานอยู่ตามปกติ

  • docker version
  • docker info

คำสั่งแรกใช้ดูเวอร์ชันของ Docker ทั้งฝั่ง client และ server ส่วนคำสั่งที่สองจะให้ข้อมูลภาพรวมของระบบ Docker ที่กำลังใช้งานอยู่ เช่น จำนวน container, image, driver และการตั้งค่าต่าง ๆ

2) เข้าใจแนวคิดพื้นฐานของ Docker

เพื่อให้ใช้งาน Docker ได้ไม่สับสน ควรแยกความหมายขององค์ประกอบหลักออกจากกันให้ชัดเจน

  • Image = แม่แบบสำหรับสร้างแอปหรือบริการ
  • Container = สิ่งที่รันขึ้นมาจาก image
  • Volume = พื้นที่เก็บข้อมูลถาวร
  • Network = ช่องทางให้คอนเทนเนอร์ติดต่อกัน

เมื่อเข้าใจ 4 คำนี้แล้ว การอ่านคำสั่ง Docker ส่วนใหญ่จะง่ายขึ้นมาก

3) ค้นหาและดาวน์โหลด Image จาก Registry

หากต้องการหา image ที่พร้อมใช้งานจาก registry สามารถใช้คำสั่ง:

  • docker search nginx

เมื่อเจอ image ที่ต้องการแล้ว ให้ดาวน์โหลดด้วยคำสั่ง:

  • docker pull nginx:latest
  • docker pull postgres:16

หลังดาวน์โหลดเสร็จ สามารถตรวจสอบ image ที่มีอยู่ในเครื่องได้ด้วย:

  • docker images

คำแนะนำที่สำคัญคือควรระบุเวอร์ชันให้ชัดเจน เช่น postgres:16 แทนการใช้ latest เพื่อช่วยลดความเสี่ยงจากความเปลี่ยนแปลงที่ไม่คาดคิด

4) การรันคอนเทนเนอร์แบบพื้นฐาน

เริ่มจากการรันคอนเทนเนอร์แบบง่ายที่สุด:

  • docker run nginx

กรณีนี้คอนเทนเนอร์จะรันแบบ foreground และสามารถหยุดได้ด้วย Ctrl+C

หากต้องการรันแบบ background หรือ detached mode ให้ใช้:

  • docker run -d nginx

และหากต้องการตั้งชื่อคอนเทนเนอร์เพื่อให้จำง่าย:

  • docker run -d --name web nginx

การตั้งชื่อช่วยให้การอ้างถึงคอนเทนเนอร์ในคำสั่งอื่น ๆ สะดวกขึ้นมาก เช่น ตอนดู log, restart หรือ stop

5) การแมพพอร์ตเพื่อเข้าถึงบริการจากเครื่องเรา

ถ้าต้องการเปิดให้เข้าถึงบริการภายในคอนเทนเนอร์จากเครื่องของเรา ต้องใช้การแมพพอร์ต

รูปแบบคำสั่งคือ:

  • -p พอร์ตเครื่องเรา:พอร์ตในคอนเทนเนอร์

ตัวอย่าง:

  • docker run -d --name web -p 8080:80 nginx

เมื่อรันแล้ว จะสามารถเข้าใช้งานผ่านเบราว์เซอร์ได้ที่:

  • http://localhost:8080

6) การส่งค่า Environment ให้คอนเทนเนอร์

บาง image ต้องการค่าตั้งต้นเพื่อเริ่มทำงาน เช่น รหัสผ่านของฐานข้อมูล

ตัวอย่าง:

  • docker run -d --name db -e POSTGRES_PASSWORD=pass postgres:16

การใช้ -e ช่วยกำหนด environment variable ให้กับคอนเทนเนอร์ เหมาะมากสำหรับการตั้งค่าระบบในขั้นต้น

7) การตรวจสอบสถานะและดู Log

เมื่อต้องการดูว่ามีคอนเทนเนอร์ใดกำลังรันอยู่บ้าง ใช้:

  • docker ps

หากต้องการดูทั้งหมด รวมถึงตัวที่หยุดไปแล้ว ใช้:

  • docker ps -a

ถ้าต้องการดู log แบบต่อเนื่องเพื่อตรวจสอบปัญหา:

  • docker logs -f web

คำสั่งนี้มีประโยชน์มากเวลา debug ระบบหรือเฝ้าดูพฤติกรรมของแอประหว่างทดสอบ

8) การเข้าไปทำงานภายในคอนเทนเนอร์

บางครั้งเราจำเป็นต้องเข้าไปดูไฟล์หรือรันคำสั่งภายในคอนเทนเนอร์โดยตรง

  • docker exec -it web sh

บาง image อาจรองรับ bash แทน:

  • docker exec -it web bash

คำสั่งนี้เหมาะสำหรับการตรวจสอบไฟล์ ค่าตั้งค่า หรือสภาพแวดล้อมภายในคอนเทนเนอร์

9) การคัดลอกไฟล์เข้าและออกจากคอนเทนเนอร์

Docker รองรับการคัดลอกไฟล์ระหว่างเครื่องเราและคอนเทนเนอร์

จากเครื่องเราเข้าไปในคอนเทนเนอร์:

  • docker cp ./index.html web:/usr/share/nginx/html/index.html

จากคอนเทนเนอร์กลับมายังเครื่องเรา:

  • docker cp web:/var/log/nginx/access.log ./access.log

เป็นคำสั่งที่มีประโยชน์เวลาแก้ไฟล์ด่วนหรือดึง log ออกมาตรวจสอบ

10) การหยุด เริ่มใหม่ รีสตาร์ต และลบคอนเทนเนอร์

คำสั่งพื้นฐานในการจัดการ lifecycle ของคอนเทนเนอร์มีดังนี้

  • หยุดคอนเทนเนอร์: docker stop web
  • เริ่มคอนเทนเนอร์อีกครั้ง: docker start web
  • รีสตาร์ตในคำสั่งเดียว: docker restart web
  • ลบคอนเทนเนอร์: docker rm web
  • บังคับลบกรณีกำลังรันอยู่: docker rm -f web

นอกจากนี้ยังสามารถลบ image ที่ไม่ต้องการได้ด้วย:

  • docker rmi nginx:latest

11) การดูการใช้ทรัพยากรของคอนเทนเนอร์

หากต้องการดูว่าคอนเทนเนอร์ใช้ CPU, RAM หรือทรัพยากรอื่นมากน้อยแค่ไหน ใช้:

  • docker stats

คำสั่งนี้ช่วยระบุได้ว่าคอนเทนเนอร์ตัวใดกำลังกินทรัพยากรผิดปกติ ซึ่งมีประโยชน์มากในงาน monitoring เบื้องต้น

12) Mount โฟลเดอร์จากเครื่องเราเพื่อใช้ในการพัฒนา

สำหรับงานพัฒนา การ mount โฟลเดอร์จากเครื่องเข้าไปในคอนเทนเนอร์ช่วยให้แก้โค้ดแล้วเห็นผลได้เร็วขึ้น

  • docker run -d --name web -p 8080:80 -v ./site:/usr/share/nginx/html:ro nginx

ในตัวอย่างนี้ Docker จะนำโฟลเดอร์ ./site จากเครื่องเราไปไว้ในตำแหน่งไฟล์เว็บของ Nginx ภายในคอนเทนเนอร์

ส่วน :ro หมายถึง read-only เพื่อป้องกันการแก้ไขไฟล์จากฝั่งคอนเทนเนอร์โดยไม่ตั้งใจ

13) การใช้ Volume สำหรับข้อมูลถาวร

หากต้องการเก็บข้อมูลให้คงอยู่แม้คอนเทนเนอร์จะถูกลบ ควรใช้ volume

สร้าง volume:

  • docker volume create pgdata

ใช้งาน volume กับ PostgreSQL:

  • docker run -d --name db -e POSTGRES_PASSWORD=pass -v pgdata:/var/lib/postgresql/data postgres:16

แนวทางนี้เหมาะมากสำหรับฐานข้อมูล เพราะข้อมูลจะไม่หายไปตามอายุของคอนเทนเนอร์

14) การใช้ Network เพื่อเชื่อมต่อบริการหลายตัว

Docker network ช่วยให้หลายคอนเทนเนอร์คุยกันได้สะดวกและปลอดภัยขึ้น

สร้าง network:

  • docker network create appnet

รันฐานข้อมูลใน network เดียวกัน:

  • docker run -d --name db --network appnet -e POSTGRES_PASSWORD=pass postgres:16

รันเว็บเซิร์ฟเวอร์ใน network เดียวกัน:

  • docker run -d --name web --network appnet -p 8080:80 nginx

เมื่ออยู่ใน network เดียวกัน คอนเทนเนอร์สามารถอ้างถึงกันได้ผ่านชื่อคอนเทนเนอร์ เช่น db หรือ web

15) เคล็ดลับที่ช่วยให้ใช้งาน Docker ได้อย่างปลอดภัยและเป็นระบบ

มีแนวปฏิบัติบางอย่างที่ช่วยลดปัญหาในการใช้งานระยะยาว

  • อย่ารีบใช้ prune ล้างทุกอย่าง หากยังไม่แน่ใจว่าจะกระทบอะไรบ้าง
  • ตั้งชื่อ container และ volume ให้สื่อความหมาย
  • ระบุ tag เวอร์ชันให้ชัดเจน เช่น postgres:16 แทน latest

แนวทางเหล่านี้ช่วยให้ทีมทำงานร่วมกันง่ายขึ้น และลดความเสี่ยงจากการเผลอลบหรืออัปเดตสิ่งสำคัญโดยไม่ตั้งใจ

16) การทำความสะอาด Docker อย่างปลอดภัยขึ้น

เมื่อใช้งานไปสักพัก จะมี container และ image ที่ไม่ได้ใช้สะสมอยู่ ควรล้างอย่างระมัดระวัง

ลบคอนเทนเนอร์ที่หยุดแล้ว:

  • docker container prune

ลบ image ที่ dangling:

  • docker image prune

ดูภาพรวมก่อนว่าจะลบอะไรได้บ้าง:

  • docker system df

คำสั่งกลุ่มนี้ช่วยคืนพื้นที่ดิสก์ได้ดี โดยยังปลอดภัยกว่าการลบแบบครอบจักรวาล

สรุป

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

สำหรับการทำงานจริง แนะนำให้ฝึกใช้คำสั่งเหล่านี้กับโปรเจกต์เล็ก ๆ ก่อน แล้วค่อยต่อยอดไปสู่ Docker Compose หรือระบบ deployment ที่ซับซ้อนขึ้นในภายหลัง

แหล่งอ้างอิง