


Penyelesaian kepada masalah bahawa bekas docker tidak boleh dimulakan
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.
- 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
- 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) ...
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.
- 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
Output di atas menunjukkan bahawa port 80 bekas dipetakan ke port 8080 hos, jadi kita perlu menyemak sama ada port 8080 hos telah diduduki.
- 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
Di dalam bekas, jalankan perkhidmatan yang perlu disemak dan lihat maklumat output.
- 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
Kemudian, bina semula imej dan jalankan bekas.
$ docker build -t my-nginx . $ docker run -d --name nginx-container -p 8080:80 my-nginx
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Docker adalah kemahiran yang mesti ada untuk jurutera DevOps. 1.Docker adalah platform kontena sumber terbuka yang mencapai pengasingan dan mudah alih dengan aplikasi pembungkusan dan kebergantungan mereka ke dalam bekas. 2. Docker bekerja dengan ruang nama, kumpulan kawalan dan sistem fail bersekutu. 3. Penggunaan asas termasuk mencipta, menjalankan dan menguruskan bekas. 4. Penggunaan lanjutan termasuk menggunakan DockerCompose untuk menguruskan aplikasi multi-kontainer. 5. Kesilapan umum termasuk kegagalan kontena, masalah pemetaan pelabuhan, dan masalah ketekunan data. Kemahiran penyahpepijatan termasuk log melihat, memasukkan bekas, dan melihat maklumat terperinci. 6. Pengoptimuman prestasi dan amalan terbaik termasuk pengoptimuman imej, kekangan sumber, pengoptimuman rangkaian dan amalan terbaik untuk menggunakan Dockerfile.

Dockervolumes memastikan data tetap selamat apabila bekas dimulakan semula, dipadam, atau berhijrah. 1. Buat Jilid: DockervolumecreatemyData. 2. Jalankan bekas dan gunung: dockerrun-it-vmydata:/app/dataubuntubash. 3. Penggunaan lanjutan termasuk perkongsian data dan sandaran.

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

Kaedah Peningkatan Keselamatan Docker termasuk: 1. Gunakan parameter-cap-drop untuk menghadkan keupayaan Linux, 2. Buat bekas baca sahaja, 3 set tag Selinux. Strategi ini melindungi bekas dengan mengurangkan pendedahan kelemahan dan mengehadkan keupayaan penyerang.

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).
