Apabila bekerja dengan Docker, anda mungkin menghadapi contoh di mana arahan itu mengembalikan ralat 'kebenaran ditolak'. Ralat ini berlaku apabila anda cuba menjalankan Docker tanpa kebenaran yang mencukupi untuk arahan itu.
Docker memerlukan kebenaran sudo atau root untuk melaksanakan arahan yang berkaitan secara lalai. Percubaan untuk menjalankan sebarang arahan tanpa keistimewaan yang diperlukan membawa kepada ralat 'kebenaran ditolak' yang terkenal.
Tutorial ini menyediakan pelbagai kaedah dan teknik yang boleh anda gunakan untuk membetulkan ralat 'kebenaran ditolak' semasa cuba menjalankan arahan Docker.
Perlu diingat bahawa ia tidak meliputi proses menjalankan Docker dalam persekitaran tanpa akar. Anda boleh menyemak tutorial kami tentang Docker tanpa akar dalam sumber berikut:
Keperluan:
Seperti yang anda boleh rasa, untuk mengikuti siaran ini, anda dikehendaki mempunyai yang berikut:
- Docker versi 20.0 dan ke atas
- Sudo atau kebenaran root pada sistem hos
Apakah Ralat 'Kebenaran Ditolak'?
Apabila ralat 'kebenaran dinafikan' berlaku dalam Docker, ini bermakna sistem hos tidak dapat mewujudkan komunikasi dengan daemon Docker kerana kebenaran yang tidak mencukupi. Satu contoh ditunjukkan dalam perkara berikut:
$ lari berlabuh -ia kotak sibuk sh
Jika anda menghadapi ralat yang diberikan, anda boleh menggunakan beberapa kaedah berikut untuk mengetahui cara membetulkannya.
Kaedah 1: Jalankan Docker sebagai Root
Kaedah pertama dan paling jelas untuk menyelesaikan ralat 'kebenaran ditolak' Docker adalah menggunakan arahan 'sudo'. Jika anda mempunyai keistimewaan sudo, anda boleh membetulkannya dengan menjalankan perintah yang berkaitan menggunakan sudo.
Sebagai contoh, untuk membetulkan ralat tersebut, kita boleh menambahkan sudo sebelum arahan seperti berikut:
$ sudo lari berlabuh -ia kotak sibuk sh
Seperti yang anda lihat, Docker berjaya menarik imej yang diperlukan dan menjalankan bekas.
Kaedah 2: Mulakan semula Daemon Docker
Kadangkala, anda boleh mendapatkan ralat 'kebenaran ditolak' dalam Docker jika enjin mengalami masalah. Daripada menjejaki isu itu secara manual, anda boleh cuba memulakan semula daemon Docker dengan pantas untuk memuatkannya semula.
Mulakan dengan menyemak status daemon Docker seperti berikut:
$ docker systemctl status docker
Sebaik sahaja anda memastikan bahawa Docker sedang berjalan, mulakan semula perkhidmatan dengan arahan berikut:
Ini sepatutnya boot daemon Docker dan membetulkan sebarang isu yang mungkin menghalang anda daripada menjalankan sebarang arahan.
Kaedah 3: Dayakan Pengguna Bukan Root
Kaedah lain yang boleh anda gunakan untuk menyelesaikan ralat 'kebenaran ditolak' dalam Docker ialah membenarkan pengguna bukan root untuk melaksanakan arahan Docker.
Untuk mendayakan kaedah ini, log masuk ke sistem hos dan buat kumpulan baharu untuk Docker.
$ sudo tambah kumpulan -f pekerja pelabuhan
Seterusnya, tambahkan mana-mana pengguna yang anda inginkan ke kumpulan Docker seperti berikut:
Perintah sebelumnya harus menambah pengguna linuxhint ke kumpulan Docker.
Akhir sekali, gunakan perubahan kumpulan pada sesi semasa menggunakan arahan berikut:
$ newgrp buruh pelabuhan
Setelah selesai, anda boleh menjalankan sebarang arahan Docker tanpa menggunakan sudo untuk mana-mana pengguna dalam kumpulan Docker.
Kaedah 4: Konfigurasikan semula Kebenaran Docker
Kaedah seterusnya yang boleh anda gunakan ialah menetapkan semula kebenaran untuk soket Docker. Mulakan dengan menukar pemilikan soket Docker Unix dengan menjalankan arahan berikut:
$ sudo chown akar: docker / adalah / lari / docker.stock
Seterusnya, ambil pemilikan direktori Docker tersembunyi dalam direktori rumah anda menggunakan arahan seperti berikut:
Akhir sekali, tetapkan kumpulan dengan kebenaran baca dan tulis ke direktori seperti berikut:
Kaedah yang disediakan harus menetapkan kebenaran yang mencukupi untuk fail dan direktori Docker yang penting.
Kesimpulan
Dalam tutorial ini, kami belajar bagaimana kami boleh menggunakan empat kaedah utama untuk menyelesaikan ralat 'kebenaran ditolak' Docker apabila menggunakan arahan Docker.