ลด 50% ทุกแผน มีเวลาจำกัด เริ่มต้นที่ $2.48/mo
เหลืออีก 9 นาที
เครื่องมือสำหรับนักพัฒนาและ DevOps

คำแนะนำง่ายๆ ในการเขียนบันทึกนักเทียบท่า: วิธีตรวจสอบและจัดการ

เอด้า เลิฟกู๊ด By เอด้า เลิฟกู๊ด อ่าน 9 นาที อัปเดตเมื่อวันที่ 23 กุมภาพันธ์ 2025
บันทึกนักเทียบท่า

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

Docker ช่วยให้คุณสามารถจัดแพ็คเกจแอปพลิเคชันของคุณลงในคอนเทนเนอร์ขนาดเล็กและรันบนระบบปฏิบัติการส่วนใหญ่โดยไม่ต้องพึ่งพาใดๆ เหมือนกับการวางแอปของคุณไว้ในกล่องเล็กๆ ที่เรียกว่าคอนเทนเนอร์ ซึ่งสามารถทำงานในลักษณะเดียวกันได้ทุกที่ การรู้เกี่ยวกับคอนเทนเนอร์ถือเป็นข้อกำหนดเบื้องต้นที่สำคัญในการเรียนรู้เกี่ยวกับการเขียนของ Docker ดังนั้นฉันขอแนะนำให้คุณอ่านบล็อกของเราก่อน ประโยชน์ของการบรรจุภาชนะ

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

คุณสงสัยเกี่ยวกับ Docker Compose Logs หรือไม่? คุณอยู่ในสถานที่ที่เหมาะสม บล็อกนี้จะอธิบายพื้นฐานของบันทึก Docker Compose และครอบคลุมรายละเอียดขั้นสูงเพิ่มเติม เรียนรู้วิธีใช้ประโยชน์สูงสุดจาก Docker Compose สำหรับโปรเจ็กต์ของคุณ

ความสำคัญของบันทึกการเขียนนักเทียบท่า

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

ในฐานะนักพัฒนาหรือผู้ดูแลระบบ คุณต้องเข้าใจว่าเกิดอะไรขึ้นภายในและระหว่างแอปพลิเคชันหลายสายโซ่ นี่คือจุดที่บันทึกของ Docker Compose ทำหน้าที่เป็นเครื่องมือที่มีประโยชน์ แล้วเหตุใดบันทึกเหล่านี้จึงจำเป็น?

  • การแก้ไขปัญหาและการดีบัก

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

  • การตรวจสอบความสมบูรณ์ของแอปพลิเคชัน

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

  • การตรวจสอบและการปฏิบัติตามกฎระเบียบ

สำหรับแอปพลิเคชันที่ต้องปฏิบัติตามมาตรฐานเฉพาะ บันทึกนักเทียบท่าถือเป็นหลักฐานชิ้นแรกที่แสดงว่าแอปพลิเคชันปฏิบัติตามหลักเกณฑ์หรือไม่ บันทึกเหล่านี้ยังมีบทบาทสำคัญในการตรวจสอบกิจกรรมที่ได้รับอนุญาตหรือไม่ได้รับอนุญาต

  • การเพิ่มประสิทธิภาพ

บันทึกเป็นทรัพยากรที่มีคุณค่าสำหรับการเพิ่มประสิทธิภาพซอฟต์แวร์โดยการให้ข้อมูลประสิทธิภาพ ตัวอย่างเช่น นักพัฒนาสามารถระบุการสืบค้นที่ทำงานช้า เส้นทางโค้ดที่ไม่มีประสิทธิภาพ หรือทรัพยากรที่ใช้งานน้อยเกินไป

การสร้างสูตรนักเทียบท่า: การปรับใช้เว็บเซิร์ฟเวอร์

ในส่วนนี้ เราจะอธิบายการสร้างสูตร Docker กัน ก่อนอื่น เราต้องสร้างบางสิ่งเพื่อเริ่มต้นการเดินทางด้วยบันทึก Docker Compose มาปรับใช้เว็บเซิร์ฟเวอร์เพื่อจุดประสงค์นี้กัน หากต้องการสร้าง Dockerfile เพียงเรียกใช้ นาโน ด็อคเกอร์ไฟล์ ในโฟลเดอร์ที่ต้องการบน VPS ของคุณโดยมีเนื้อหาดังต่อไปนี้ จากนั้นจึงบันทึก:

 

FROM nginx:alpine
RUN rm /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

แล้วโค้ดแต่ละบรรทัดนี้มีไว้ทำอะไร?

  • เราเริ่มต้นด้วยฐานที่มีน้ำหนักเบา nginx:อัลไพน์.
  • ต่อไปเราจะล้างหน้าต้อนรับเริ่มต้นของ Nginx
  • จากนั้นเราตรวจสอบให้แน่ใจว่าเว็บเซิร์ฟเวอร์กำลังฟังพอร์ตอยู่ 80.
  • ในที่สุดเราก็รันเซิร์ฟเวอร์ Nginx ด้วย ซีเอ็มดี.

ตอนนี้ Dockerfile ของเราพร้อมแล้ว เราจะไปยังขั้นตอนถัดไปซึ่งก็คือการสร้างไฟล์ Docker Compose นี่คือโครงสร้างของ docker-compose.yml ไฟล์:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html

มาแยกย่อยเพื่อทำความเข้าใจแต่ละส่วนโดยสมบูรณ์:

  • เรากำลังใช้เวอร์ชัน 3.8.
  • บรรทัดถัดไปเราตั้งชื่อบริการของเราว่า “เว็บ“.
  • จากนั้นเราสั่งให้ Docker สร้างเว็บเซิร์ฟเวอร์ของเราจากโฟลเดอร์ปัจจุบัน
  • เราเชื่อมโยงพอร์ต 8080 บนโฮสต์ของเรากับพอร์ต 80 ในคอนเทนเนอร์ของเราเพื่อให้เว็บเซิร์ฟเวอร์ของเราสามารถสร้างการเชื่อมต่อได้
  • ในที่สุด แมปการกำหนดค่าวอลุ่ม index.html จากดิสก์โฮสต์ไปยังคอนเทนเนอร์ หลังจากนั้น คุณสามารถสร้างไฟล์ index.html ไฟล์ที่มีเนื้อหาใด ๆ ที่คุณต้องการและวางไว้ที่ Dockerfile และ docker-compose.yml มีไฟล์อยู่

ตอนนี้ได้เวลารันคอนเทนเนอร์ Docker ด้วย Docker Compose แล้ว พูดง่ายๆ ก็คือ เราวิ่ง นักเทียบท่า-เขียนขึ้น.

เรียกใช้คอนเทนเนอร์ Docker ด้วย Docker Compose

เมื่อคุณเรียกใช้ นักเทียบท่า-เขียนขึ้น คำสั่ง Docker จะดาวน์โหลดอิมเมจที่ต้องการจากอินเทอร์เน็ตและกำหนดค่าตามคำแนะนำในไฟล์การกำหนดค่าของเรา

หากต้องการตรวจสอบว่าเว็บเซิร์ฟเวอร์ของเราทำงานอยู่หรือไม่ ให้เปิดเว็บเบราว์เซอร์ของคุณ พิมพ์ที่อยู่ IP VPS ของคุณ และขอการเข้าถึงพอร์ต 8080

หน้าเว็บเทียบท่า

คุณสามารถใช้ได้ นักเทียบท่าเขียนขึ้น -d เพื่อเรียกใช้คอนเทนเนอร์ในเบื้องหลัง

การเข้าถึงบันทึกด้วย Docker Compose

ตอนนี้เว็บเซิร์ฟเวอร์ของเราพร้อม เปิดใช้งาน และทำงานแล้ว กำลังสร้างบันทึกและจัดเก็บข้อมูลนี้ไว้เพื่อใช้ในภายหลัง การเข้าถึงบันทึกการเขียนนักเทียบท่าของคุณถือเป็นสิ่งสำคัญสำหรับการแก้ไขปัญหาและการตรวจสอบ แต่เราจะอ่านบันทึกเหล่านี้ได้อย่างไร นี่คือที่ บันทึกนักเทียบท่าเขียน มีประโยชน์ ตรวจสอบให้แน่ใจว่าคุณอยู่ในโฟลเดอร์ที่มีการกำหนดค่าอยู่ และเรียกใช้คำสั่งนั้น

การเข้าถึงบันทึกด้วย Docker Compose

บางครั้ง คุณอาจต้องการดูบันทึกเวอร์ชันที่ใช้งานจริงในขณะที่กำลังสร้าง เพียงเพิ่ม -f ที่ส่วนท้ายของคำสั่งก่อนหน้าแล้วรัน บันทึกนักเทียบท่าเขียน -f.

การเข้าถึงบันทึกด้วย Docker Compose

แอปพลิเคชันที่ใช้ Docker บางตัวอาจไม่ให้การประทับเวลาในบันทึกแก่คุณ ดังนั้นคุณสามารถใช้ บันทึกนักเทียบท่าเขียน -t เพื่อเพิ่มเวลาที่บันทึกไว้สำหรับแต่ละบรรทัดของบันทึก

การเข้าถึงบันทึกด้วย Docker Compose

Docker Logs ยังสามารถแสดงรายการล่าสุดได้ เพื่อให้บรรลุเป้าหมายนี้ ให้ใช้ บันทึกนักเทียบท่าเขียน –tail 10 เพื่อดูรายการบันทึกล่าสุด 10 รายการ นักเทียบท่าเขียนส่วนท้ายของบันทึก และในทำนองเดียวกันส่วนท้ายของบันทึกนักเทียบท่าก็มีประโยชน์อย่างยิ่งเมื่อคุณต้องการตรวจสอบกิจกรรมล่าสุดอย่างรวดเร็วโดยไม่ต้องเลื่อนดูประวัติบันทึกทั้งหมด

การเข้าถึงบันทึกด้วยนักเทียบท่าเขียน

วัตถุประสงค์หลักของการใช้ Docker Compose คือการสร้างแอปพลิเคชันแบบหลายคอนเทนเนอร์ ดังนั้น คุณอาจต้องอ่านบันทึกเฉพาะสำหรับบริการที่ต้องการ หากต้องการทำเช่นนั้น ให้ใช้ บันทึกนักเทียบท่าเขียน -f บริการ, จำต้องเปลี่ยน บริการ ด้วยชื่อบริการจริงของคุณ

การเข้าถึงบันทึกด้วยนักเทียบท่า

การบันทึกนักเทียบท่า

ระบบนิเวศของ Docker อาจมีความซับซ้อนมากขึ้นสำหรับแอปพลิเคชันแบบหลอมรวม โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมขนาดใหญ่ ดังที่เราทราบแล้วว่าแต่ละคอนเทนเนอร์จะสร้างบันทึก ดังนั้นกลไกที่เรียกว่า Logging Driver มีหน้าที่รับ จัดส่ง และจัดเก็บบันทึก ตามค่าเริ่มต้น Docker จะใช้ไฟล์ JSON สำหรับ Logging Driver แต่ยังรองรับไดรเวอร์อื่นๆ อีกมากมาย ซึ่งแต่ละไดรเวอร์ก็มีข้อดีและข้อเสียต่างกันไป

ทุกคนยอมรับว่าบันทึกมีความสำคัญในด้านต่างๆ รวมถึงการแก้ไขปัญหาและการเพิ่มประสิทธิภาพของระบบ ด้านล่างนี้ เราจะกล่าวถึงประเด็นหลักสองประการในการใช้บันทึกคอนเทนเนอร์:

  • การตรวจสอบ: วัตถุประสงค์หลักของบันทึกคือการตรวจสอบ โดยทั่วไปแล้วจะเปิดเผยประสิทธิภาพโดยรวมของแอปพลิเคชันในคอนเทนเนอร์ของเรา
  • การแก้ไขปัญหา: ในกรณีที่เกิดปัญหา บันทึกจะช่วยเราตรวจจับข้อบกพร่องของแอปพลิเคชัน

เนื่องจากบันทึกนักเทียบท่าและบันทึกการเขียนนักเทียบท่าถูกสร้างขึ้นอย่างต่อเนื่อง บันทึกเหล่านี้จึงอาจเติมเต็มพื้นที่จัดเก็บข้อมูล VPS ทั้งหมด ดังนั้นเราจึงจำเป็นต้องมีกลยุทธ์ในการจัดการพื้นที่ดิสก์ที่เรียกว่านโยบายการหมุนเวียนบันทึก หากต้องการสร้างและใช้นโยบายนี้ ให้กลับไปที่ docker-compose.yml ไฟล์และเปิดมัน จากนั้น เพิ่มส่วนการบันทึกด้วยการกำหนดค่าด้านล่าง:

version: '3.8'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./index.htm:/usr/share/nginx/html/index.htm
logging:
driver: json-file
options:
max-size: "200k"
max-file: "10"

คุณสามารถปรับเปลี่ยนได้อย่างต่อเนื่อง ขนาดสูงสุด และ max-ไฟล์ ตามความต้องการของคุณ

โมเดลการนำส่งบันทึกนักเทียบท่า

วิศวกรอาจเลือกใช้โมเดลการบันทึกที่แตกต่างกันในสภาพแวดล้อมขั้นสูงมากกว่าไดรเวอร์ JSON เริ่มต้น เช่น Syslog, fluentd และอื่นๆ อย่างไรก็ตาม สิ่งสำคัญคือต้องจำไว้ว่าไดรเวอร์ไฟล์ JSON เหมาะสำหรับสถานการณ์การบันทึกส่วนใหญ่ และอาจไม่จำเป็นต้องเบี่ยงเบนไปจากโหมดเริ่มต้น

คุณอาจถูกบังคับให้ใช้โซลูชันการบันทึกส่วนกลางที่เรียกว่า Log Aggregators ทั้งนี้ขึ้นอยู่กับสถาปัตยกรรมแอปพลิเคชันของคุณหรือข้อกำหนดขององค์กร บริการเหล่านี้ได้แก่ การค้นหาแบบยืดหยุ่น, Logstash, Kibana ฯลฯ ได้รับการออกแบบมาเพื่อรับบันทึกจากแหล่งต่างๆ และรวบรวม จัดเก็บ และวิเคราะห์ไว้ในตำแหน่งศูนย์กลางแห่งเดียว

ในทางกลับกัน คุณควรจัดเก็บบันทึกของคุณโดยใช้โซลูชันการจัดเก็บข้อมูลที่คุ้มค่ากว่า พิจารณาสถานการณ์ที่ VPS ของคุณใช้พื้นที่จัดเก็บข้อมูลความเร็วสูงและมีราคาแพง การใช้ทรัพยากรระดับพรีเมียมเพื่อจัดเก็บบันทึกที่คุณอาจจำเป็นต้องใช้สำหรับการอ้างอิงในอนาคตอาจไม่ประหยัด

มีโมเดลการบันทึกมากมาย แต่ละแบบมีข้อดีและข้อเสีย การประเมินแต่ละรุ่นอย่างรอบคอบและเลือกรุ่นหนึ่งตามความต้องการเฉพาะของคุณถือเป็นสิ่งสำคัญ

โฮสติ้ง Linux VPS

รับ Linux VPS แบบประหยัดหรือพรีเมียมสำหรับการโฮสต์เว็บไซต์หรือเดสก์ท็อประยะไกลของคุณ ในราคาที่ถูกที่สุด VPS ทำงานบน Linux KVM เพื่อประสิทธิภาพที่เพิ่มขึ้น และทำงานบนฮาร์ดแวร์อันทรงพลังพร้อมที่เก็บข้อมูล NVMe SSD เพื่อเพิ่มความเร็ว

อ่านเพิ่มเติม

บทสรุป

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

คำถามที่พบบ่อย

ฉันจะกรองบันทึก Docker Compose ตามเวลาได้อย่างไร

Docker Compose ไม่มีวิธีการกรองบันทึกตามเวลาโดยตรง อย่างไรก็ตาม คุณสามารถกรองบันทึกได้โดยการไพพ์ผ่าน grep เพื่อจับคู่รูปแบบ ตัวอย่างเช่น คุณสามารถใช้: บันทึกนักเทียบท่าเขียน | grep “2023-04-06” แทนที่ “2023-04-06” ด้วยรูปแบบวันที่หรือเวลาเฉพาะที่คุณกำลังค้นหา

จะหยุดคอนเทนเนอร์ที่เริ่มต้นด้วย Docker Compose ได้อย่างไร

นำทางไปยังไดเร็กทอรีที่มีไฟล์ docker-compose.yml และรันคำสั่ง docker-compose down

จะลบไฟล์บันทึกด้วยตนเองได้อย่างไร?

แทนที่จะกำหนดค่าการหมุนเวียนบันทึกในไฟล์ docker-compose.yml คุณสามารถลบไฟล์บันทึก Docker JSON ออกจาก /var/lib/docker/containers/<container_id>/ ได้ด้วยตนเอง ก่อนที่จะดำเนินการดังกล่าว คุณควรระบุ ID คอนเทนเนอร์ Docker ด้วย docker ps -a

คุณสามารถติดตามบันทึกของ Docker ได้หรือไม่ 

ใช่คุณสามารถ คุณควรใช้คำสั่ง docker logs พร้อมกับตัวเลือก -f หรือ –follow นี่จะเป็นการติดตามบันทึกของ Docker ให้กับคุณ

แบ่งปัน

เพิ่มเติมจากบล็อก

อ่านต่อ

ภาชนะโลหะที่หุ้มด้วยโดมโครงลวดสีฟ้านีออนเรืองแสง โดยมีชื่อบทความและโลโก้ Cloudzy บนพื้นหลังสีน้ำเงินเข้ม
เครื่องมือสำหรับนักพัฒนาและ DevOps

ข้อผิดพลาดด้านความปลอดภัยของ Docker อันดับต้นๆ ที่ควรหลีกเลี่ยงในปี 2026

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

เรกซ่า ไซรัสเรกซ่า ไซรัส อ่าน 15 นาที
โครงสร้างลูกบาศก์สีน้ำเงินเรืองแสง 3 มิติที่แสดงถึงคอนเทนเนอร์ Docker ข้างข้อความ 'Porttainer vs Yacht: คุณควรเลือก UI ของ Docker ใด' และโลโก้ Cloudzy
เครื่องมือสำหรับนักพัฒนาและ DevOps

Portainer vs Yacht: คุณควรเลือก Docker UI ใดในปี 2569

การจัดการคอนเทนเนอร์ Docker ผ่าน CLI มีประสิทธิภาพสำหรับการตั้งค่าง่ายๆ แต่ปรับขนาดได้ไม่ดี เมื่อจำนวนคอนเทนเนอร์เพิ่มขึ้น การติดตามสถานะ บันทึก และการอัปเดตด้วยตนเองจะกลายเป็นข้อผิดพลาด

เรกซ่า ไซรัสเรกซ่า ไซรัส อ่าน 13 นาที
เครื่องมือบูรณาการอย่างต่อเนื่อง
เครื่องมือสำหรับนักพัฒนาและ DevOps

เครื่องมือ CI/CD ที่ดีที่สุดเพื่อเพิ่มประสิทธิภาพเวิร์กโฟลว์ DevOps ของคุณในปี 2569

  ภาพรวมของการพัฒนาซอฟต์แวร์มีการพัฒนาเร็วกว่าที่เคย และหากคุณไม่ต้องการตามหลังการเติบโตอย่างรวดเร็วนี้ คุณควรยอมรับวิธีการ DevOps และ Agile

เอด้า เลิฟกู๊ดเอด้า เลิฟกู๊ด อ่าน 11 นาที

พร้อมที่จะใช้งานหรือยัง? จาก $2.48/เดือน

คลาวด์อิสระ ตั้งแต่ปี 2008 AMD EPYC, NVMe, 40 Gbps คืนเงินภายใน 14 วัน