GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Memeriksa Apakah Daemon Docker atau Wadah Berjalan

Docker menggunakan arsitektur berbasis daemon di mana CLI terhubung ke proses berumur panjang yang berjalan secara terpisah di mesin Anda atau host jarak jauh. Perintah CLI tidak akan berfungsi dan container Anda biasanya akan offline jika daemon berhenti.

Berikut cara memeriksa apakah daemon Docker aktif sehingga Anda dapat mendiagnosis masalah dengan container dan docker memerintah. Saat daemon tidak berjalan, Anda akan melihat pesan “tidak dapat terhubung ke daemon Docker” setiap kali Anda menggunakan docker CLI.

Memeriksa Dengan Systemctl

Anda dapat memeriksa status Docker dengan systemctl pada distribusi yang menggunakan Systemd untuk manajemen layanan. Ini mencakup sebagian besar sistem operasi populer termasuk Debian, Ubuntu, CentOS, dan Red Hat.

sudo systemctl status docker

Periksa apa yang ditampilkan di bawah "Aktif." Jika Anda melihat active (running) berwarna hijau, daemon Docker sedang berjalan dan container Anda akan aktif.

Status aktif inactive menunjukkan layanan telah berhenti. Coba jalankan dengan menjalankan sudo systemctl start docker . Status harus berubah menjadi active (running) setelah daemon dimulai.

Jika Anda melihat status failed berwarna merah, daemon tidak dapat dimulai karena kesalahan. Anda harus meninjau log startup layanan yang ditampilkan nanti di systemctl perintah output karena ini biasanya berisi petunjuk yang memungkinkan Anda mengetahui apa yang salah.

Jika tidak ada resolusi yang jelas tersedia, mulai daemon secara manual dalam mode debugging untuk mendapatkan informasi lebih lanjut tentang rutinitas startupnya.

sudo dockerd --debug

Reboot mesin host Anda atau restart layanan Docker dengan systemctl restart docker dapat membantu meringankan masalah sementara juga.

Memeriksa Detail Proses

Cara lain untuk memeriksa daemon Docker yang sedang berjalan adalah dengan memeriksa file ID prosesnya. Daemon menulis ID prosesnya ke /var/run/docker.pid setiap kali dimulai. Ketika file ini ada, Docker harus berjalan dan siap untuk koneksi CLI.

cat /var/run/docker.pid

Anda dapat menggunakan teknik ini untuk membuat skrip program yang memeriksa apakah daemon masih hidup. Membaca file memberi Anda ID yang dapat Anda gunakan dengan alat seperti top untuk mendapatkan informasi lebih lanjut tentang proses Docker:

cat /var/run/docker.pid

# process id = 1000

top -p 1000

Anda juga bisa mendapatkan ID proses denganpidof memerintah. Ini menerima nama proses dan mengembalikan ID pertama yang cocok:

pidof dockerd

# process id = 1000

# view information with top
top -p `pidof dockerd`

Ada daemon Docker yang aktif di mesin Anda jika top cocok dengan dockerd proses. Ini bisa lebih andal daripada mencari docker.pid – jika daemon crash, docker.pid bisa tertinggal setelah prosesnya hilang.

Menangani File Proses Stuck

Daemon akan menolak untuk memulai ulang ketika file PID ada. Ini bisa membuat Anda terjebak dalam loop restart jika file tersebut benar-benar yatim piatu dari proses sebelumnya. Anda akan melihat pesan ini saat menjalankan dockerd :

failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid

Gunakan pidof dockerd untuk memastikan Docker benar-benar berhenti. Lanjutkan jika perintah tidak mengeluarkan output, mengonfirmasi bahwa tidak ada proses yang berjalan.

Jalankan sudo rm /var/run/docker.pid untuk menghapus file ID proses lama. Daemon sekarang seharusnya mulai berhasil saat berikutnya Anda menjalankan dockerd atau service docker start .

Masalah file PID biasanya ditemui saat Anda memotret mesin virtual dan kemudian membuat instance baru dari gambar. File proses akan disertakan dalam snapshot, yang menyebabkan daemon Docker di VM baru menganggapnya sudah berjalan.

Memeriksa Kontainer Individu

Status masing-masing container diakses melalui docker ps memerintah. Ini memancarkan tabel yang berisi detail semua container yang sedang berjalan.

docker ps

Gabungkan docker ps perintah dengan grep untuk dengan mudah memeriksa apakah wadah tertentu dijalankan dengan ID atau nama:

docker ps | grep my-container-name

Sekarang output akan difilter untuk menampilkan wadah yang Anda pilih. Tidak akan ada catatan jika penampung tidak berjalan.

Kontainer yang dihentikan ditampilkan menggunakan docker ps -a . Wadah yang dihentikan dapat dimulai dengan docker start perintah:

docker start my-container

Kontainer kemudian akan pindah ke docker ps biasa keluaran. Anda dapat menghentikannya lagi dengan docker stop my-container .

Kesimpulan

Anda memiliki beberapa opsi untuk dipertimbangkan ketika Anda ingin mengetahui apakah Docker sedang berjalan. Ada manajer layanan sistem operasi Anda, docker.pid file, dan alat pemeriksaan proses reguler seperti top dan pidof .

Ketika datang ke wadah individu, docker ps menyediakan daftar semua yang sedang berjalan di host Anda. Informasi yang lebih komprehensif tentang status container apa pun dapat diperoleh dengan docker inspect container-name yang memberikan detail konfigurasi jaringan, volume, dan label dalam format JSON.


Docker
  1. Cara Menjaga Kontainer Docker Tetap Berjalan Saat Daemon Berhenti

  2. Cara Menjalankan Perintah di Running Docker Container

  3. Cara Menetapkan IP Statis ke Wadah Docker

  1. Cara Menjalankan MySQL Dalam Wadah Docker

  2. Cara SSH Ke Wadah Docker

  3. Cara Menginstal Vim di Wadah Docker

  1. Cara Mendaftar Kontainer Docker

  2. Cara Mengubah Zona Waktu Untuk Wadah Docker

  3. Bagaimana cara menentukan nama host untuk wadah yang sedang berjalan?