Semasa bekas Docker sedang berjalan, kadangkala anda mungkin menghadapi pelbagai laporan ralat, seperti "tiada fail atau direktori sedemikian", "kebenaran ditolak", "sambungan ditolak", dsb. Laporan ralat ini sering membuat kami berasa keliru dan tidak tahu cara menyelesaikannya.
Salah satu ralat biasa ialah apabila kita menggunakan perintah docker run
untuk menjalankan bekas, ia akan menggesa "docker: Respons ralat daripada daemon: OCI runtime create failed: container_linux.go:345: starting container proses menyebabkan ralat "exec:". Jadi apakah maksud ralat ini dan bagaimana untuk menyelesaikannya?
Ralat ini bermakna Docker tidak boleh menjalankan arahan yang ditentukan semasa mencipta bekas. Antaranya, "container_linux.go:345" bermaksud terdapat masalah apabila Docker sebenarnya berjalan dalam bekas Linux. "exec: kebenaran ditolak" bermakna Docker tidak boleh melaksanakan arahan yang ditentukan kerana kebenaran ditolak.
Jadi mengapa ralat sedemikian berlaku? Secara umumnya, terdapat dua kemungkinan penyebab ralat ini.
Pertama sekali, ini mungkin kerana anda cuba menjalankan arahan tanpa kebenaran. Dalam bekas Docker, kebenaran yang diperlukan untuk menjalankan arahan adalah sangat terhad. Jika anda cuba menjalankan arahan yang memerlukan keizinan khas, maka anda akan menghadapi isu ditolak kebenaran.
Kedua, ini mungkin kerana anda menggunakan fail Docker atau imej yang salah. Dalam Docker, setiap bekas bergantung pada satu atau lebih imej. Jika terdapat masalah dengan imej atau Dockerfile yang anda gunakan, bekas tidak akan berjalan dengan betul.
Seterusnya, mari kita lihat cara untuk menyelesaikan masalah ini. Kaedah khusus adalah seperti berikut:
--privileged
semasa menjalankan bekas. Parameter ini membolehkan bekas mendapatkan lebih banyak kebenaran, yang mungkin menyelesaikan masalah penafian kebenaran. Ringkasnya, apabila kami menggunakan bekas Docker untuk dijalankan, kami menghadapi "docker: Respons ralat daripada daemon: OCI runtime create failed: container_linux.go:345: memulakan proses kontena yang disebabkan "exec: permission denied", mungkin kerana arahan yang kami gunakan tidak mempunyai kebenaran, atau terdapat masalah dengan Dockerfile atau imej yang kami gunakan. Jika anda pasti tiada masalah dengan kedua-dua aspek ini, anda boleh cuba menambah --privileged
parameter untuk menyelesaikan masalah.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat apabila docker menjalankan bekas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!