Inspecting Containers
การตรวจสอบ Docker Containers
การตรวจสอบ Docker Containers ช่วยให้คุณสามารถดูข้อมูลเกี่ยวกับ container ที่กำลังทำงานอยู่ รวมถึงการตรวจสอบสถานะ, พอร์ตที่เปิด, และการตั้งค่าต่างๆ ของ container ทำให้คุณสามารถตรวจสอบและแก้ไขปัญหาได้ง่ายขึ้น
คำสั่งพื้นฐานในการตรวจสอบ Containers
1. ดูรายการ Docker Containers ที่กำลังทำงานอยู่
คำสั่ง docker ps จะให้ข้อมูลเกี่ยวกับ containers ที่กำลังทำงานในขณะนั้น:
docker ps
คำสั่งนี้จะแสดงข้อมูลต่างๆ ของ container เช่น:
CONTAINER ID: หมายเลข ID ของ containerIMAGE: ชื่อ image ที่ container ใช้COMMAND: คำสั่งที่ container กำลังรันSTATUS: สถานะของ containerPORTS: พอร์ตที่เปิดใน containerNAMES: ชื่อของ container
2. ดูรายการ Docker Containers ทั้งหมด (รวมถึงที่หยุดทำงานแล้ว)
หากต้องการดูทุกๆ container (รวมถึงที่หยุดทำงานแล้ว) ใช้คำสั่ง docker ps -a:
docker ps -a
คำสั่งนี้จะแสดง container ทั้งหมดในเครื่องของคุณ
3. ดูข้อมูลรายละเอียดของ Docker Container
คำสั่ง docker inspect จะให้ข้อมูลรายละเอียดเกี่ยวกับ container ที่ระบุ เช่น ข้อมูลเครือข่าย, พอร์ตที่เปิด, การตั้งค่าภายใน container:
docker inspect container_id
ในที่นี้ container_id คือหมายเลข ID ของ container ที่คุณต้องการตรวจสอบ
ตัวอย่าง:
docker inspect my-container
คำสั่งนี้จะให้ข้อมูลทั้งหมดเกี่ยวกับ my-container เช่น ข้อมูลเกี่ยวกับเครือข่าย, ข้อมูลเกี่ยวกับ volume, การตั้งค่า environment variables และอื่นๆ
4. ดูข้อมูลเฉพาะบางส่วนของ Container
หากคุณต้องการดึงข้อมูลเฉพาะบางส่วนของ container เช่น IP address, พอร์ตที่เปิด, หรือ environment variables สามารถใช้ --format เพื่อกรองข้อมูลที่ต้องการ:
docker inspect --format `{{.NetworkSettings.IPAddress}}` container_id
ในที่นี้:
--formatใช้ในการจัดรูปแบบข้อมูล- .NetworkSettings.IPAddress ใช้เพื่อดึงข้อมูล IP address ของ container
ตัวอย่างอื่นๆ:
- การดึงชื่อของ container:
docker inspect --format '{{.Name}}' container_id - การดึงค่าของ environment variable:
docker inspect --format '{{range .Config.Env}}{{println .}}{{end}}' container_id
5. การดู Logs ของ Docker Container
คำสั่ง docker logs ใช้ในการดู log ของ container เพื่อดูข้อความแสดงข้อผิดพลาดหรือข้อมูลที่เกิดขึ้นภายใน container:
docker logs container_id
คำสั่งนี้จะให้ข้อมูล log ที่ container กำลังสร้างขึ้น โดยคุณสามารถใช้ flag ต่างๆ เพื่อควบคุมการแสดง log ได้ เช่น:
-f: ใช้สำหรับการติดตาม log ที่ใหม่ๆ--tail: ใช้เพื่อดู log ล่าสุดตามจำนวนที่กำหนด
ตัวอย่าง:
docker logs -f --tail 100 container_id
คำสั่งนี้จะแสดง log ล่าสุด 100 บรรทัด และจะติดตามการแสดง log ใหม่ๆ
6. การดูสถานะของ Docker Container
คำสั่ง docker stats ใช้ในการดูสถานะการทำงานของ containers ทั้งหมดในระบบ เช่น การใช้ CPU, RAM, และข้อมูลอื่นๆ ที่เกี่ยวข้อง:
docker stats
คำสั่งนี้จะแสดงข้อมูลในรูปแบบ real-time ของการใช้งานทรัพยากรในทุกๆ container ที่กำลังทำงานอยู่
7. ตรวจสอบ Network ของ Docker Container
หากคุณต้องการดูข้อมูลเกี่ยวกับเครือข่ายที่ container กำลังใช้งาน เช่น IP address หรือชื่อเครือข่ายที่เชื่อมต่อ สามารถใช้คำสั่ง docker network inspect:
docker network inspect network_name
ในที่นี้ network_name คือชื่อของ network ที่ container เชื่อมต่อ
ตัวอย่างการใช้งานคำสั่ง docker inspect
ตัวอย่างที่ 1: ดู IP address ของ container
สมมติว่าเราต้องการดู IP address ของ container ชื่อ my-container:
docker inspect --format '{{.NetworkSettings.IPAddress}}' my-container
คำสั่งนี้จะแสดง IP address ของ my-container
ตัวอย่างที่ 2: ดูข้อมูลเกี่ยวกับการตั้งค่า environment variables
หากต้องการดู environment variables ที่ตั้งไว้ภายใน container:
docker inspect --format '{{range .Config.Env}}{{println .}}{{end}}' my-container
คำสั่งนี้จะแสดงค่าของ environment variables ที่ตั้งไว้ใน my-container
ตัวอย่างที่ 3: ดูรายละเอียดของทุกๆ container
หากต้องการดูข้อมูลทั้งหมดเกี่ยวกับทุกๆ container ที่มีอยู่:
docker inspect $(docker ps -q)
คำสั่งนี้จะใช้คำสั่ง docker ps -q เพื่อดึงหมายเลข ID ของทุกๆ container ที่กำลังทำงานอยู่และใช้ docker inspect เพื่อดูรายละเอียด
สรุป
การตรวจสอบ Docker Containers เป็นขั้นตอนสำคัญในการจัดการและแก้ไขปัญหาที่เกิดขึ้นใน container โดยใช้คำสั่งต่างๆ เช่น docker ps, docker inspect, docker logs, และ docker stats ซึ่งช่วยให้คุณสามารถดูข้อมูลเกี่ยวกับสถานะ, เครือข่าย, และทรัพยากรของ container ได้ รวมถึงการดึงข้อมูลเฉพาะที่ต้องการ เช่น IP address หรือ environment variables เพื่อให้คุณสามารถควบคุมและจัดการ Docker Containers ได้อย่างมีประสิทธิภาพ