Home
» Petua PC
»
Bagaimana untuk membetulkan ralat Docker: Format Rujukan Tidak Sah.
Bagaimana untuk membetulkan ralat Docker: Format Rujukan Tidak Sah.
Docker memudahkan untuk membina, menjalankan dan mengurus bekas. Walau bagaimanapun, anda mungkin menghadapi ralat "Format Rujukan Tidak Sah" semasa menjalankan atau membina imej. Dalam kebanyakan kes, ini disebabkan oleh ralat pemformatan kecil dalam nama imej atau teg. Sebagai contoh, ralat mungkin disebabkan oleh huruf besar, aksara khas atau nilai yang tiada. Panduan ini akan menerangkan punca biasa ralat ini dan cara membetulkannya untuk mengelakkannya daripada berulang.
Betulkan ralat "Format Rujukan Tidak Sah".
Mari ketahui punca paling biasa ralat "Format Rujukan Tidak Sah" dan cara membetulkannya:
Huruf besar dalam nama imej
Docker memerlukan nama imej dalam huruf kecil. Malah satu huruf besar boleh menyebabkan ralat pemformatan. Sebagai contoh, menjalankan arahan berikut akan mengakibatkan ralat:
docker pull NGINX
Nama arkib mestilah dalam huruf kecil
Untuk mengelakkan ralat ini, sentiasa semak semula sama ada nama imej anda dalam huruf kecil sebelum menjalankan arahan.
docker pull nginx
Gunakan huruf kecil
Watak istimewa atau tidak sah
Kadangkala pengguna secara tidak sengaja menambah aksara yang tidak dibenarkan oleh Docker. Ini termasuk tanda @, ruang atau aksara yang disalin daripada tapak web atau dokumen yang kelihatan biasa tetapi tidak.
Sebagai contoh, arahan berikut mengandungi aksara khas @, yang akan menyebabkan ralat berikut:
docker run ubuntu@:latest
Ralat aksara khas
Untuk membetulkan ralat ini, pastikan tiada aksara tambahan atau isu pemformatan dalam arahan. Anda boleh menggunakan editor teks biasa untuk menyemak dan membersihkan arahan (jika perlu):
docker run ubuntu:latest
Elakkan watak istimewa
Kolon tanpa tag
Salah satu kesilapan yang paling biasa ialah meletakkan titik bertindih di hujung nama imej tetapi tidak menyertakan tag. Sebagai contoh, mari cuba arahan berikut untuk menarik Node:
docker pull node:
Docker menjangkakan nilai selepas kolon, seperti latest , 18-alpine , atau mana-mana teg sah yang lain. Jika tiada nilai diberikan, nama imej dianggap tidak lengkap dan akan menyebabkan ralat "Format Rujukan Tidak Sah":
Kolon tanpa tag
Untuk membetulkan ralat ini, tambahkan teg yang sesuai selepas titik bertindih untuk menjadikan nama imej penuh dan sah:
docker pull node:latest
Tambah tag selepas titik bertindih
Laluan fail atau lekapan volum mengandungi ruang
Apabila anda menyertakan laluan fail yang mengandungi ruang, terutamanya dengan pilihan seperti -v (lekapkan volum), Docker mungkin salah tafsir bahagian laluan sebagai hujah yang berasingan atau malah sebagai sebahagian daripada nama imej. Akibatnya, anda mungkin menghadapi hasil yang tidak dijangka seperti yang ditunjukkan di bawah:
docker run -v /home/user/My Folder:/app ubuntu
Ruang dalam nama fail
Untuk mengelakkan ini, sentiasa sertakan laluan fail dengan ruang dalam petikan berganda, seperti yang ditunjukkan di bawah:
docker run -v "/home/user/My Folder:/app" ubuntu
Gantikan "/home/user/My Folder" dengan laluan sebenar ke direktori yang anda mahu lekapkan ke dalam bekas.
Penggunaan pembolehubah yang tidak sesuai
Apabila bekerja dengan Docker, adalah perkara biasa untuk menggunakan pembolehubah dalam arahan, terutamanya apabila menentukan versi imej. Walau bagaimanapun, jika pembolehubah seperti $VERSION tidak ditetapkan dengan betul, Docker boleh menghadapi masalah seperti ralat "Format Rujukan Tidak Sah".
Sebagai contoh, jalankan arahan berikut untuk menarik Ubuntu daripada Docker Hub:
docker pull ubuntu:$VERSION
Di sini, $VERSION sepatutnya mewakili versi imej Ubuntu yang anda mahu tarik. Tetapi jika anda tidak memberikan nilai kepadanya, Docker akan mentafsir arahan sebagai "docker pull ubuntu:". Ini mengakibatkan nama imej tidak sah kerana ia berakhir dengan titik bertindih dan tidak mempunyai teg versi yang diperlukan.
Penggunaan pembolehubah yang salah
Untuk mengelakkan ini, pastikan semua pembolehubah yang digunakan dalam arahan ditakrifkan dengan betul. Di Linux, anda boleh menetapkan pembolehubah menggunakan sintaks berikut.
$VERSION=latest
Kemudian tarik versi yang ditentukan dengan melaksanakan arahan berikut.
docker pull ubuntu:$VERSION
Dalam Windows CMD, anda perlu menggunakan kata kunci yang ditetapkan untuk menentukan pembolehubah (seperti versi), kemudian gunakan sintaks %VARIABLE% untuk merujuknya dalam arahan seperti docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Di sini, $VERSION memegang nilai terbaharu, jadi Docker menarik ubuntu:imej terkini tanpa sebarang masalah. Anda juga boleh menetapkan versi tertentu, seperti 18.04, jika perlu.
Tentukan pembolehubah dengan betul
Masalah salin dan tampal
Kadangkala pengguna menyalin arahan daripada tutorial atau dokumentasi dalam talian. Perintah yang disalin ini mungkin mengandungi aksara tersembunyi seperti ruang yang tidak kelihatan, tanda baca bukan bahasa Inggeris atau tanda petikan khas. Watak ini boleh merosakkan arahan Docker anda secara senyap.
Untuk mengelakkan ini, adalah lebih baik untuk menaip arahan itu sendiri apabila boleh, atau tampalkan arahan itu ke dalam editor teks biasa terlebih dahulu untuk mengalih keluar pemformatan yang tidak diingini.
Sekarang setelah anda mengetahui punca biasa ralat "Format Rujukan Tidak Sah" dalam Docker dan cara membetulkannya, anda akan dapat mengelakkan masalah ini pada masa hadapan. Daripada menyemak huruf besar hingga memastikan pembolehubah anda ditetapkan dengan betul, petua mudah ini boleh menjimatkan banyak masa dan kekecewaan anda. Jika anda bersedia untuk meneroka lebih lanjut, anda juga mungkin ingin belajar cara menandai dan menolak imej Docker tersuai anda ke registri, atau cara membersihkan imej yang tidak digunakan untuk memastikan sistem anda bersih.