Docker Commands ที่ใช้บ่อยที่สุด 20 คำสั่ง

หากคุณเพิ่งเริ่มใช้ Docker การจำคำสั่งทุกตัวอาจดูน่ากลัว บทความนี้รวบรวม 20 คำสั่งที่ใช้งานจริงบ่อยที่สุด พร้อมตัวอย่างการใช้งานจริง

1. docker run — สร้างและรัน Container

# รันแบบพื้นฐาน
docker run nginx

# รันเป็น Background (-d) และ Map Port
docker run -d -p 8080:80 nginx

# รันและตั้งชื่อ Container
docker run -d --name my-nginx -p 8080:80 nginx

2. docker ps — ดูรายการ Container

# ดูเฉพาะ Container ที่กำลังรัน
docker ps

# ดูทุก Container รวมที่หยุดแล้ว
docker ps -a

3. docker stop / start / restart — ควบคุม Container

docker stop my-nginx
docker start my-nginx
docker restart my-nginx

4. docker rm — ลบ Container

# ลบ Container ที่หยุดแล้ว
docker rm my-nginx

# ลบทั้งที่ยังรันอยู่ (Force)
docker rm -f my-nginx

5. docker images — ดูรายการ Image

docker images

6. docker pull — ดาวน์โหลด Image

# ดาวน์โหลด Image ล่าสุด
docker pull nginx

# ดาวน์โหลด Image เพาะ Version
docker pull nginx:1.25

7. docker rmi — ลบ Image

docker rmi nginx
docker rmi nginx:1.25

8. docker build — Build Image จาก Dockerfile

# Build จาก Dockerfile ใน Directory ปัจจุบัน
docker build -t my-app .

# Build พร้อม Tag Version
docker build -t my-app:1.0 .

9. docker exec — รันคำสั่งใน Container ที่รันอยู่

# เข้าไปใน Shell ของ Container
docker exec -it my-nginx bash

# รันคำสั่งเดียว
docker exec my-nginx nginx -v

10. docker logs — ดู Log ของ Container

# ดู Log ทั้งหมด
docker logs my-nginx

# ดู Log แบบ Real-time
docker logs -f my-nginx

# ดูแค่ 50 บรรทัดล่าสุด
docker logs --tail 50 my-nginx

11. docker inspect — ดูรายละเอียด Container/Image

docker inspect my-nginx

12. docker stats — ดูการใช้ทรัพยากรแบบ Real-time

docker stats
docker stats my-nginx

13. docker cp — คัดลอกไฟล์เข้า/ออก Container

# คัดลอกจาก Container ไป Host
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf

# คัดลอกจาก Host ไป Container
docker cp ./nginx.conf my-nginx:/etc/nginx/nginx.conf

14. docker volume — จัดการ Volume

# สร้าง Volume
docker volume create my-data

# ดูรายการ Volume
docker volume ls

# ลบ Volume
docker volume rm my-data

15. docker network — จัดการ Network

# ดูรายการ Network
docker network ls

# สร้าง Network ใหม่
docker network create my-network

16. docker tag — ตั้งชื่อ Image

docker tag my-app:latest myrepo/my-app:1.0

17. docker push — อัปโหลด Image ขึ้น Registry

docker push myrepo/my-app:1.0

18. docker login / logout — เข้าสู่ Registry

docker login
docker logout

19. docker system prune — ล้างของที่ไม่ใช้ให้หมด

# ลบ Container ที่หยุด, Image เก่า, Network ที่ไม่ใช้
docker system prune

# ลบทุกอย่างรวมทั้ง Volume
docker system prune -a --volumes

20. docker compose up/down — จัดการ Multi-Container

# เริ่มต้น Services ทั้งหมด
docker compose up -d

# หยุดและลบทุกอย่าง
docker compose down

# หยุดและลบรวมทั้ง Volume
docker compose down -v

สรุปตารางคำสั่ง

คำสั่ง การใช้งาน
docker run สร้างและรัน Container
docker ps ดูรายการ Container
docker stop/start หยุด/เริ่ม Container
docker rm ลบ Container
docker images ดูรายการ Image
docker pull ดาวน์โหลด Image
docker rmi ลบ Image
docker build Build Image จาก Dockerfile
docker exec รันคำสั่งใน Container
docker logs ดู Log
docker inspect ดูรายละเอียด
docker stats ดูการใช้ Resource
docker cp คัดลอกไฟล์
docker volume จัดการ Volume
docker network จัดการ Network
docker tag ตั้งชื่อ Image
docker push อัปโหลด Image
docker login เข้าสู่ Registry
docker system prune ล้างของเก่า
docker compose up/down จัดการ Multi-Container

เมื่อคุ้นเคยกับคำสั่งเหล่านี้แล้ว ขั้นตอนถัดไปคือเรียนรู้ การเขียน Dockerfile เพื่อสร้าง Image ของตัวเองได้ครับ