Skip to main content

Inspecting Containers

การตรวจสอบ Docker Containers

การตรวจสอบ Docker Containers ช่วยให้คุณสามารถดูข้อมูลเกี่ยวกับ container ที่กำลังทำงานอยู่ รวมถึงการตรวจสอบสถานะ, พอร์ตที่เปิด, และการตั้งค่าต่างๆ ของ container ทำให้คุณสามารถตรวจสอบและแก้ไขปัญหาได้ง่ายขึ้น

คำสั่งพื้นฐานในการตรวจสอบ Containers

1. ดูรายการ Docker Containers ที่กำลังทำงานอยู่

คำสั่ง docker ps จะให้ข้อมูลเกี่ยวกับ containers ที่กำลังทำงานในขณะนั้น:

docker ps

คำสั่งนี้จะแสดงข้อมูลต่างๆ ของ container เช่น:

  • CONTAINER ID : หมายเลข ID ของ container
  • IMAGE : ชื่อ image ที่ container ใช้
  • COMMAND : คำสั่งที่ container กำลังรัน
  • STATUS : สถานะของ container
  • PORTS : พอร์ตที่เปิดใน container
  • NAMES : ชื่อของ 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 ได้อย่างมีประสิทธิภาพ