Tempah Konsultasi Hantar Tiket

Penyelesaian Masalah Runtime Kontena Docker: Panduan Praktikal untuk SRE

Panduan langkah demi langkah untuk mendiagnosis dan memperbaiki isu runtime kontena Docker biasa termasuk senario, gejala, arahan, kawalan risiko, pengembalian, pengesahan, dan bila untuk menghantar tiket OpsGlobal.

Penyelesaian Masalah Runtime Kontena Docker: Panduan Praktikal untuk SRE
DevOps 6min 3 paparan 2026-06-12
DockerRuntime KontenaPenyelesaian MasalahSRE

Senario

Anda sedang bertugas on-call dan menerima amaran bahawa aplikasi terkontena yang kritikal ranap sejurus selepas dimulakan, atau terperangkap dalam gelung mulakan semula. Kontena berjalan pada hos Docker pengeluaran, dan log aplikasi tidak menunjukkan ralat yang jelas.

Gejala

  • Kontena keluar dengan kod 137 (OOMKilled), 139 (Segfault), atau 1 (ralat umum).
  • Dalam Kubernetes, status kontena menunjukkan CrashLoopBackOff; dalam Docker, ia menunjukkan restarting.
  • docker logs <kontena> mengeluarkan output kosong atau tidak lengkap.

Diagnosis

  1. Periksa kod keluar: docker inspect <kontena> --format '{{.State.ExitCode}}'
  2. Periksa had sumber: docker inspect <kontena> --format '{{.HostConfig.Memory}}' dan bahagian CPU.
  3. Periksa log sistem: journalctl -u docker.service -n 100 --no-pager untuk OOM kill atau ralat pemacu.
  4. Gunakan dmesg | grep -i kill untuk melihat mesej pembunuh OOM kernel.
  5. Uji kesihatan runtime: docker run --rm -it --runtime=runc hello-world
  6. Sahkan pemacu storan: docker info | grep "Storage Driver"

Arahan Utama

  • Mulakan semula daemon Docker dengan selamat: systemctl restart docker (dengan berhati-hati).
  • Keluarkan kontena yang tersekat secara paksa: docker rm -f <kontena>
  • Laraskan had memori: docker update --memory=512m --memory-swap=512m <kontena>
  • Debug cgroups: find /sys/fs/cgroup/memory/docker -name "memory.limit_in_bytes" -exec cat {} \;

Kawalan Risiko

  • Sebelum memulakan semula Docker, kosongkan nod daripada beban kerja atau pastikan replikasi (jika menggunakan Kubernetes).
  • Elakkan membunuh kontena yang merupakan sebahagian daripada transaksi kritikal; utamakan penutupan secara lembut.
  • Uji semua perubahan di persekitaran pementasan terlebih dahulu.

Pengembalian

  • Kembalikan had memori: docker update --memory=2g --memory-swap=2g <kontena> (nilai asal).
  • Pulihkan imej sebelumnya: docker pull <imej>:tag_lama && docker stop <kontena> && docker rm <kontena> && docker run --restart=always ...
  • Jika mulakan semula daemon Docker menyebabkan masalah, muat semula konfigurasi tanpa mulakan semula: systemctl reload docker atau kill -HUP.

Pengesahan

  • Selepas perubahan, pantau docker events --since 5m untuk permulaan/hentian kontena.
  • Jalankan docker stats --no-stream untuk melihat penggunaan sumber.
  • Periksa titik akhir kesihatan aplikasi melalui curl.

Bila Menghantar Tiket OpsGlobal

  • Ralat runtime berterusan walaupun selepas pelarasan sumber.
  • Sistem fail overlay Docker rosak memerlukan pemulihan data.
  • Pepijat kernel atau enjin Docker memerlukan eskalasi vendor.

Senario Penggunaan

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

Latar Belakang Masalah

Panduan langkah demi langkah untuk mendiagnosis dan memperbaiki isu runtime kontena Docker biasa termasuk senario, gejala, arahan, kawalan risiko, pengembalian, pengesahan, dan bila untuk menghantar tiket OpsGlobal.

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