Tempah Konsultasi Hantar Tiket

Penyelesaian Masalah Runtime Kontena Docker: Panduan Praktikal untuk DevOps/SRE

Artikel ini menyediakan penerokaan mendalam tentang penyelesaian masalah runtime kontena Docker, meliputi senario biasa, gejala, perintah diagnostik, kawalan risiko, strategi rollback, dan langkah pengesahan untuk membantu jurutera DevOps/SRE menyelesaikan masalah dengan cekap.

Penyelesaian Masalah Runtime Kontena Docker: Panduan Praktikal untuk DevOps/SRE
DevOps 6min 24 paparan 2026-07-26
DockerRuntime KontenaPenyelesaian MasalahDevOpsSRE

Senario

Anda menyelenggara aplikasi mikroservis yang tiba-tiba berhenti berfungsi — kontena gagal dimulakan atau berkelakuan tidak menentu. Ini mungkin disebabkan oleh isu runtime kontena seperti kegagalan Docker Engine, containerd, atau runc.

Gejala

  • Kontena keluar serta-merta selepas dimulakan
  • Status kontena menunjukkan "Exited" atau "CrashLoopBackOff"
  • Kontena berjalan tetapi tidak responsif atau ralat
  • Penggunaan sumber yang tidak normal (CPU/memori tinggi)
  • Log daemon Docker menunjukkan ralat

Diagnosis

1. Periksa Log Kontena

docker logs --tail 100 <container_id>

Cari ralat peringkat aplikasi. Jika kontena tidak pernah dimulakan, gunakan docker logs <container_id> untuk mendapatkan output terakhir.

2. Periksa Keadaan Kontena

docker inspect <container_id> | jq '.[0].State'

Periksa kod keluar, kiraan mulakan semula, dan butiran ralat.

3. Pantau Acara Langsung

docker events --filter 'container=<container_id>' --since '1m'

Perhatikan acara kitaran hidup kontena (mula, mati, OOM, dll.).

4. Periksa Penggunaan Sumber

docker stats --no-stream <container_id>

Semak metrik CPU, memori, dan I/O.

5. Periksa Keadaan Runtime Asas

Gunakan crictl untuk berkomunikasi terus dengan containerd:

crictl ps -a
crictl inspect <container_id>

Dapatkan maklumat terperinci tentang kontena yang diuruskan oleh kubelet.

6. Periksa Daemon Docker

journalctl -u docker.service --since '1 hour ago' | grep ERROR

Atau lihat fail log Docker: /var/log/docker.log.

Ringkasan Perintah Diagnostik

Perintah Tujuan
docker logs Lihat log aplikasi
docker inspect Dapatkan konfigurasi dan keadaan kontena
docker events Pantau acara masa nyata
docker stats Lihat penggunaan sumber
crictl ps Senaraikan kontena yang diuruskan containerd
journalctl -u docker Periksa log sistem Docker

Kawalan Risiko

  • Elakkan perintah merosakkan seperti docker rm -f atau docker system prune secara langsung dalam pengeluaran.
  • Hasilkan semula isu dalam persekitaran ujian terpencil.
  • Buat sandaran kontena dan data penting sebelum membuat perubahan.
  • Sediakan pelan rollback sebelum memulakan diagnostik.

Strategi Rollback

  1. Mulakan semula kontena: Cuba docker restart <container_id>.
  2. Rollback versi imej: Tarik tag imej yang diketahui baik sebelumnya: bash docker pull myapp:v1.0.0 docker stop <container_id> docker rm <container_id> docker run -d --name myapp_container myapp:v1.0.0
  3. Gunakan rollback orkestrasi: Contohnya, kubectl rollout undo deployment/myapp pada Kubernetes.
  4. Pulihkan volume kontena: Jika menggunakan bind mount, pulihkan data dari sandaran.

Pengesahan

  • Sahkan kontena berjalan: docker ps menunjukkan status "Up".
  • Periksa titik akhir kesihatan: curl http://localhost:8080/health mengembalikan 200.
  • Semak log aplikasi tiada ralat.
  • Jalankan ujian fungsi untuk memastikan perkhidmatan sihat.

Bila untuk Hantar Tiket OpsGlobal

  • Isu berterusan selepas penyelesaian masalah awal.
  • Ralat peringkat kernel (OOM kill, kernel panic) muncul.
  • Komponen runtime kontena (containerd, runc) gagal menjejaskan pelbagai kontena.
  • Analisis prestasi mendalam atau analisis punca sebenar diperlukan.
  • Persekitaran pengeluaran mengalami gangguan berterusan — memerlukan sokongan pakar 24/7.

OpsGlobal menyediakan sokongan DevOps/SRE jarak jauh untuk menterjakan dan menyelesaikan isu runtime yang kompleks dengan cepat, meminimumkan masa henti.

Senario Penggunaan

Sesuai untuk pasukan yang menyelesaikan isu DevOps dan memerlukan aliran kerja yang jelas.

Latar Belakang Masalah

Artikel ini menyediakan penerokaan mendalam tentang penyelesaian masalah runtime kontena Docker, meliputi senario biasa, gejala, perintah diagnostik, kawalan risiko, strategi rollback, dan langkah pengesahan untuk membantu jurutera DevOps/SRE menyelesaikan masalah dengan cekap.

Langkah Penyelesaian

Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.

Contoh Arahan

Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.

Risiko

Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.

Pelan Rollback

Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.

Senarai Serahan

Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.

!

Perlu bantuan isu teknikal serupa?

Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.

Tiket Hubungi WhatsApp Konsultasi