Rumah Operasi dan penyelenggaraan Docker Penyelesaian kepada masalah bahawa bekas docker tidak boleh dimulakan

Penyelesaian kepada masalah bahawa bekas docker tidak boleh dimulakan

Apr 04, 2023 am 09:27 AM

Docker ialah platform kontena popular yang digunakan secara meluas untuk pembangunan dan penggunaan. Walau bagaimanapun, kadangkala anda mungkin menghadapi kegagalan permulaan apabila menggunakan bekas Docker. Artikel ini akan meneroka beberapa masalah biasa dan menyediakan penyelesaian.

  1. Menyemak status kontena

Pertama, kita perlu menyemak status kontena. Gunakan arahan docker ps -a untuk melihat status semua bekas, termasuk bekas berjalan dan tidak berjalan. Jika status bekas ialah Exited, bekas itu telah berhenti berjalan.

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
8a9506b91d24        nginx               "nginx -g 'daemon of…"   2 hours ago         Exited (1) 2 hours ago                            nginx-container
Salin selepas log masuk
  1. Semak log kontena

Apabila bekas gagal dimulakan, kita boleh mendapatkan butiran lanjut dengan melihat log kontena. Gunakan arahan docker logs CONTAINER_NAME/ID untuk melihat keluaran log bekas. Jika bekas telah ditutup pada masa ini, anda boleh menggunakan parameter -f untuk terus melihat log.

$ docker logs nginx-container
2021/08/23 08:08:09 [emerg] 1#1: bind() to 0.0.0.0:80 failed (98: Address already in use)
...
Salin selepas log masuk

Mengambil nginx-container di atas sebagai contoh, anda boleh melihat bahawa mesej ralat ialah bind() to 0.0.0.0:80 failed (98: Address already in use), menunjukkan bahawa port 80 sudah diduduki, jadi bekas tidak boleh dimulakan.

  1. Semak pemetaan port kontena

Mesej ralat sebelumnya telah menyebut masalah pendudukan pelabuhan, jadi kami perlu menyemak sama ada pemetaan port kontena adalah betul. Gunakan arahan docker port CONTAINER_NAME/ID untuk melihat pemetaan port bekas.

$ docker port nginx-container
80/tcp -> 0.0.0.0:8080
Salin selepas log masuk

Output di atas menunjukkan bahawa port 80 bekas dipetakan ke port 8080 hos, jadi kita perlu menyemak sama ada port 8080 hos telah diduduki.

  1. Semak perkhidmatan dalaman kontena

Kadangkala permulaan kontena gagal kerana perkhidmatan dalaman tidak boleh dimulakan seperti biasa. Contohnya, kegagalan sambungan kontena pangkalan data, masalah konfigurasi aplikasi itu sendiri, dsb. Dalam kes ini, kita perlu masuk ke dalam bekas, jalankan perkhidmatan secara manual dan semak output.

Gunakan arahan docker exec -it CONTAINER_NAME/ID bash untuk memasuki bekas.

$ docker exec -it nginx-container bash
Salin selepas log masuk

Di dalam bekas, jalankan perkhidmatan yang perlu disemak dan lihat maklumat output.

  1. Bina semula imej

Jika bekas tidak boleh dimulakan dan tiada kaedah di atas membantu, anda boleh cuba membina semula bekas itu. Pertama, kita perlu menghentikan dan memadam bekas asal.

$ docker stop nginx-container
$ docker rm nginx-container
Salin selepas log masuk

Kemudian, bina semula imej dan jalankan bekas.

$ docker build -t my-nginx .
$ docker run -d --name nginx-container -p 8080:80 my-nginx
Salin selepas log masuk

Di atas adalah beberapa sebab dan penyelesaian biasa yang menyebabkan bekas Docker gagal dimulakan. Sudah tentu, terdapat juga sebab lain yang lebih rumit dan pilihan konfigurasi yang perlu diberi perhatian apabila menggunakan bekas Docker. Saya harap pembaca dapat menguasai kemahiran asas pembangunan kontena.

Atas ialah kandungan terperinci Penyelesaian kepada masalah bahawa bekas docker tidak boleh dimulakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Menggunakan Docker Exec untuk menjalankan arahan dalam bekas Docker Cara Menggunakan Docker Exec untuk menjalankan arahan dalam bekas Docker Mar 05, 2025 pm 03:42 PM

Cara Menggunakan Docker Exec untuk menjalankan arahan dalam bekas Docker

Apa itu Docker? Apa itu Docker? Mar 05, 2025 pm 03:49 PM

Apa itu Docker?

Bagaimanakah saya menggunakan aplikasi ke kluster Swarm Docker? Bagaimanakah saya menggunakan aplikasi ke kluster Swarm Docker? Mar 17, 2025 pm 04:20 PM

Bagaimanakah saya menggunakan aplikasi ke kluster Swarm Docker?

Adakah Docker adalah persekitaran atau perisian Adakah Docker adalah persekitaran atau perisian Mar 05, 2025 pm 03:38 PM

Adakah Docker adalah persekitaran atau perisian

Apa itu Docker? Apa itu Docker? Mar 05, 2025 pm 03:39 PM

Apa itu Docker?

Bagaimanakah saya membuat skala aplikasi di Kubernet? Bagaimanakah saya membuat skala aplikasi di Kubernet? Mar 17, 2025 pm 04:28 PM

Bagaimanakah saya membuat skala aplikasi di Kubernet?

Apakah pod, penyebaran, dan perkhidmatan Kubernetes? Apakah pod, penyebaran, dan perkhidmatan Kubernetes? Mar 17, 2025 pm 04:25 PM

Apakah pod, penyebaran, dan perkhidmatan Kubernetes?

Apa itu Docker? Apa itu Docker? Mar 05, 2025 pm 03:46 PM

Apa itu Docker?

See all articles