Skip to content

คำสั่ง Docker อธิบาย

คำสั่ง Docker ที่ใช้ในงานประจำวัน จัดกลุ่มตามหน้าที่: สร้างและจัดการ image, รันและหยุด container, ปรับแต่ง docker run ด้วยแฟล็ก, อ่าน logs และสถิติ, เข้าไปข้างใน container, คัดลอกไฟล์และติดต่อ registry, จัดการ volume และเครือข่าย, ใช้งาน Compose และคืนพื้นที่ดิสก์

Docker มีออบเจกต์หลักสองอย่าง: image (เทมเพลตแบบอ่านอย่างเดียว) และ container (อินสแตนซ์ที่รันอยู่ของ image) ขั้นตอนคือ build หรือ pull image, รันเป็น container, ตรวจดูสิ่งที่เกิดขึ้น แล้วจึงเก็บกวาด คนส่วนใหญ่ยังใช้ Compose เพื่อประกาศแอปแบบหลาย container ทุกคำสั่งด้านล่างมีรูปย่อ และจะแสดงรูปเต็มในจุดที่รูปเต็มชัดกว่า

ตารางอ้างอิง · 75 รายการ
75 of 75 rows
การ build
สร้าง image จาก Dockerfiledocker build -t app:1.0 .
สร้าง image ใหม่ตั้งแต่ต้น โดยไม่ใช้เลเยอร์ที่แคชไว้docker build --no-cache -t app:1.0 .
สร้างเฉพาะจนถึง stage ที่ระบุชื่อใน Dockerfile แบบหลาย stagedocker build --target deps -t app:deps .
สร้าง image ผ่านปลั๊กอิน buildx ซึ่งขับเคลื่อนด้วย BuildKitdocker buildx build -t app:1.0 .
สร้าง image เดียวสำหรับหลายสถาปัตยกรรม CPUdocker buildx build --platform linux/amd64,linux/arm64 -t app:1.0 --push .
Image
ดาวน์โหลด image จาก registrydocker pull node:20
แสดงรายการ image ที่เก็บไว้ในเครื่องdocker images
สร้าง tag ใหม่ที่ชี้ไปที่ image เดิมdocker tag app:1.0 app:latest
ลบ image ในเครื่องหนึ่งรายการขึ้นไปdocker rmi app:1.0
วงจรชีวิตของ container
สร้างและเริ่ม container จาก imagedocker run -p 8080:3000 app
สร้าง container โดยไม่เริ่มรันdocker create --name web app
เริ่ม container ที่หยุดอยู่docker start web
หยุด container ที่กำลังรันอย่างสุภาพ (graceful)docker stop web
หยุดแล้วเริ่ม container ใหม่ในขั้นตอนเดียวdocker restart web
บังคับหยุด container ทันที โดยไม่รอการปิดแบบสุภาพdocker kill web
แช่แข็ง process ทั้งหมดภายใน containerdocker pause web
คลายแช่แข็ง process ของ container ที่ถูก pause ไว้docker unpause web
บล็อกรอจนกว่า container จะหยุด แล้วพิมพ์รหัสออก (exit code)docker wait web
แสดงรายการ container ที่กำลังรัน เพิ่ม -a เพื่อรวมตัวที่หยุดแล้วdocker ps -a
ตั้งชื่อใหม่ให้ container ที่มีอยู่docker rename web web-old
แก้ไขขีดจำกัดทรัพยากรหรือนโยบาย restart ของ containerdocker update --restart=unless-stopped web
ลบ container ที่หยุดแล้วdocker rm web
แฟล็กของ docker run
รัน container ในเบื้องหลังและพิมพ์ ID ของมันdocker run -d -p 8080:80 app
เผยแพร่พอร์ตของ container ไปยังพอร์ตของโฮสต์docker run -p 8080:80 app
เมานต์โฟลเดอร์ของโฮสต์หรือ named volume เข้าไปใน containerdocker run -v app-data:/data app
ตั้งตัวแปรสภาพแวดล้อมภายใน containerdocker run -e MODE=prod app
กำหนดชื่อคงที่ให้ container เพื่อใช้ในคำสั่งถัดไปdocker run --name web app
ลบ container เมื่อมันจบการทำงานdocker run --rm app
เริ่ม container บนเครือข่ายที่ระบุdocker run --network net app
บอก Docker ว่าให้ restart container เมื่อไหร่docker run --restart unless-stopped app
จัดสรรเทอร์มินัลและคง stdin เปิดไว้สำหรับเซสชันแบบโต้ตอบdocker run -it alpine sh
แทนที่ entrypoint ของ image ด้วยคำสั่งของคุณเองdocker run --entrypoint sh app
จำกัดหน่วยความจำหรือสัดส่วน CPU ที่ container ใช้ได้docker run --memory 512m --cpus 0.5 app
การตรวจดู
อ่าน stdout และ stderr ของ container; -f ติดตาม output ใหม่ที่มาถึงdocker logs -f web
แสดงค่า config และสถานะระดับต่ำของ container หรือ imagedocker inspect web
ดึง field เดียวจาก inspect ด้วย Go templatedocker inspect --format '{{.State.Status}}' web
แสดงรายการพอร์ตโฮสต์ที่ container เผยแพร่docker port web
แสดงไฟล์ที่ container เปลี่ยนแปลงเทียบกับ image ต้นทางdocker diff web
CPU, หน่วยความจำ และเครือข่ายแบบเรียลไทม์ของ container ที่กำลังรันdocker stats
แสดงรายการ process ที่รันอยู่ภายใน containerdocker top web
สตรีมเหตุการณ์ Docker จาก daemon ตามที่เกิดขึ้นdocker events --filter type=container
แสดงพื้นที่ดิสก์ที่ image, container, volume และแคชใช้docker system df
แสดงการตั้งค่าและสถานะ Docker ทั้งระบบdocker info
Exec และ attach
รันคำสั่งภายใน container ที่กำลังรันdocker exec -it web sh
เชื่อมเทอร์มินัลของคุณเข้ากับ process หลักของ containerdocker attach web
ไฟล์และ registry
คัดลอกไฟล์ระหว่าง container กับระบบไฟล์ในเครื่องdocker cp web:/app/logs ./logs
ลงชื่อเข้าใช้ registry จาก CLIdocker login
ออกจากระบบ registrydocker logout
อัปโหลด image ในเครื่องไปยัง registrydocker push user/app:1.0
เขียน image ลงไฟล์ tardocker save -o app.tar app:1.0
อ่าน image จากไฟล์ tardocker load -i app.tar
เขียนระบบไฟล์ของ container ลงไฟล์ tardocker export web > web.tar
สร้าง image จากระบบไฟล์แบบ tardocker import web.tar web:snap
เปลี่ยนสถานะปัจจุบันของ container ให้เป็น image ใหม่docker commit web app:snap
Volume
สร้าง named volume สำหรับข้อมูลถาวรdocker volume create data
แสดงรายการ volumedocker volume ls
ลบ volumedocker volume rm data
เครือข่าย
แสดงรายการเครือข่ายdocker network ls
สร้างเครือข่ายเพื่อให้ container ติดต่อกันได้docker network create net
เชื่อมต่อ container ที่กำลังรันเข้ากับเครือข่ายdocker network connect net web
Compose
สร้าง, (สร้างใหม่) และเริ่ม service ใน compose.yaml; -d ทิ้งไว้ให้รันในเบื้องหลังdocker compose up -d
เริ่ม service โดย rebuild image ก่อนdocker compose up --build -d
รันคำสั่งภายใน container ของ service ที่กำลังรันdocker compose exec api sh
ดู log แบบต่อเนื่องของ service หนึ่งหรือหลาย servicedocker compose logs -f api
แสดงรายการ container ของ service ที่ Compose จัดการdocker compose ps
หยุด container ของ service โดยไม่ลบออกdocker compose stop
restart container ของ servicedocker compose restart api
หยุดและลบ container กับเครือข่าย; -v ลบ named volume ด้วยdocker compose down
แสดง config สุดท้ายของ Compose หลังการ merge และแทนที่ตัวแปรสภาพแวดล้อมdocker compose config
การเก็บกวาด
ลบ container ที่หยุดแล้ว, image ที่ dangling และเครือข่ายที่ไม่ได้ใช้; -a --volumes ลบ image และ volume ที่ไม่ได้ใช้ด้วยdocker system prune -af
ลบ container ที่หยุดแล้วทั้งหมดdocker container prune
ลบ image ที่ไม่ได้ใช้หรือ danglingdocker image prune -a
ลบ volume ที่ไม่มี container ใช้docker volume prune
ลบเครือข่ายที่ไม่มี container ใช้docker network prune
ลบเลเยอร์บิลด์ที่แคชไว้docker builder prune