ในบางกรณีจำเป็นอย่างยิ่งที่จะต้องทำการดีบักในเชิงลึกมากขึ้นของปัญหาก่อนที่จะหยุดคอนเทนเนอร์หรือฆ่ากระบวนการ
พิจารณาทำตามรายการตรวจสอบด้านล่าง:
1) ตรวจสอบสภาพแวดล้อมการเขียนนักเทียบท่าในปัจจุบัน เรียก
ถ้าพอร์ตอยู่ในการใช้งานโดยภาชนะอื่นหยุดมันด้วยหรือเอาออกโดยการแทนที่ด้วยdocker-compose ps
docker-compose stop <service-name-in-compose-file>
stop
rm
2) ตรวจสอบคอนเทนเนอร์ที่ทำงานนอกพื้นที่ทำงานปัจจุบันของคุณ
เรียกใช้docker ps
เพื่อดูรายการคอนเทนเนอร์ทั้งหมดที่ทำงานภายใต้โฮสต์ของคุณ หากคุณพบว่าพอร์ตที่อยู่ในการใช้งานโดยภาชนะอื่นคุณสามารถหยุดมันด้วย
(*) เนื่องจากคุณไม่ได้อยู่ภายใต้ขอบเขตของสภาพแวดล้อมต้นทางจึงเป็นแนวทางปฏิบัติที่ดีในการใช้นักเทียบท่าตรวจสอบก่อนเพื่อรวบรวมข้อมูลเพิ่มเติมเกี่ยวกับคอนเทนเนอร์ที่คุณกำลังจะหยุดdocker stop <container-id>
compose
3) ตรวจสอบว่าพอร์ตถูกใช้โดยกระบวนการอื่นที่รันบนโฮสต์
หรือไม่ตัวอย่างเช่นถ้าพอร์ต 6379 รัน:
$ sudo netstat -ltnp | grep ':6379'
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 915/redis-server 12
tcp6 0 0 ::1:6379 :::* LISTEN 915/redis-server 12
(*) คุณยังสามารถใช้คำสั่งlsofซึ่งส่วนใหญ่จะใช้เพื่อดึงข้อมูลเกี่ยวกับไฟล์ที่เปิดโดยกระบวนการต่างๆ (ฉันขอแนะนำให้รันnetstat
ก่อนหน้านั้น)
ดังนั้นในกรณีของผลลัพธ์ที่อยู่เหนือPID
คือ915
. ตอนนี้คุณสามารถเรียกใช้:
$ ps j 915
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
1 915 915 915 ? -1 Ssl 123 0:11 /usr/bin/redis-server 127.0.0.1:6379
และดู ID ของกระบวนการหลัก ( PPID
) และคำสั่งการดำเนินการ
คุณยังสามารถรัน: $ pstree -s <PID>
เพื่อแสดงภาพของกระบวนการและกระบวนการที่เกี่ยวข้อง
ในกรณีของเราเราจะเห็นว่ากระบวนการนี้น่าจะเป็น daemon (PPID คือ 1) - ในกรณีนั้นให้พิจารณาการรัน:
A) $ cat /proc/<PID>/status
เพื่อรับข้อมูลเชิงลึกเกี่ยวกับกระบวนการเช่นจำนวนเธรดที่เกิดจากกระบวนการ ความสามารถ ฯลฯ '
B) $ systemctl status <PID>
เพื่อดูไฟล์systemdหน่วยที่ทำให้เกิดการสร้างกระบวนการเฉพาะ หากบริการไม่สำคัญคุณสามารถหยุดและปิดใช้บริการได้
4) การให้บริการเริ่มต้นใหม่เทียบท่า Run:
sudo service docker restart
5) คุณมาถึงจุดนี้และ ..
เฉพาะในกรณีที่ระบบของคุณไม่ตกอยู่ในความเสี่ยง - พิจารณารีสตาร์ทเซิร์ฟเวอร์
sudo netstat -pna | grep 3000
เพื่อรับกระบวนการที่กำลังฟังอยู่