Home
» ablakok
»
A „Docker: Érvénytelen referenciaformátum” hiba javítása
A „Docker: Érvénytelen referenciaformátum” hiba javítása
A Docker megkönnyíti a konténerek létrehozását, futtatását és kezelését. Előfordulhat azonban, hogy egy kép futtatásakor vagy építésekor „Érvénytelen hivatkozási formátum” hibába ütközik. A legtöbb esetben ez a kép nevében vagy címkéjében található kisebb formázási hibának köszönhető. A hiba oka lehet például nagybetűk, speciális karakterek vagy hiányzó értékek. Ez az útmutató ismerteti a hiba gyakori okait, és azt, hogyan javítható ki, hogy a jövőben ne fordulhasson elő.
„Érvénytelen hivatkozási formátum” hiba javítása
Nézzük meg az „Érvénytelen hivatkozásformátum” hiba leggyakoribb okait és azok javítását:
Nagybetűk a képek nevében
A Docker megköveteli, hogy a képnevek kisbetűsek legyenek. Már egyetlen nagybetű is formázási hibákat okozhat. Például a következő parancs futtatása hibát eredményez:
docker pull NGINX
Az archívumneveknek kisbetűvel kell rendelkezniük
A hiba elkerülése érdekében a parancs futtatása előtt mindig ellenőrizze, hogy a kép neve kisbetűs-e.
docker pull nginx
Használjon kisbetűket
Speciális vagy érvénytelen karakter
Előfordul, hogy a felhasználók véletlenül olyan karaktereket adnak hozzá, amelyeket a Docker nem engedélyez. Ilyenek például a @ jel, a szóközök, vagy egy webhelyről vagy dokumentumból másolt karakterek, amelyek normálisnak tűnnek, de nem azok.
Például a következő parancs tartalmazza a @ speciális karaktert, ami a következő hibát okozza:
docker run ubuntu@:latest
Speciális karakterhiba
A hiba kijavításához győződjön meg arról, hogy nincsenek felesleges karakterek vagy formázási problémák a parancsban. Használhat egy egyszerű szövegszerkesztőt a parancs ellenőrzéséhez és kijavításához (ha szükséges):
docker run ubuntu:latest
Kerülje a speciális karaktereket
Vastaspont címke nélkül
Az egyik leggyakoribb hiba, hogy a kép nevének végére kettőspontot tesznek, de a taget nem. Például próbáljuk ki a következő parancsot a Node lekéréséhez:
docker pull node:
A Docker a kettőspont után egy értéket vár, például „latest”, „18-alpine” vagy bármilyen más érvényes címkét. Ha nem adunk meg értéket, a rendszerkép neve hiányosnak minősül, és „Érvénytelen hivatkozási formátum” hibát okoz:
Vastaspont címke nélkül
A hiba javításához adjon hozzá egy megfelelő címkét a kettőspont után, hogy a kép neve teljes és érvényes legyen:
docker pull node:latest
Címkék hozzáadása kettőspont után
A fájl elérési útja vagy a kötet csatolása szóközöket tartalmaz
Ha olyan fájlelérési utat adsz meg, amely szóközöket tartalmaz, különösen olyan opciók esetén, mint a -v (kötet csatolása), a Docker az elérési út egyes részeit különálló argumentumokként, vagy akár a képfájl nevének részeként értelmezheti. Ennek eredményeként váratlan eredményekkel találkozhatsz, mint például az alább látható:
docker run -v /home/user/My Folder:/app ubuntu
Szóközök a fájlnevekben
Ennek elkerülése érdekében a fájl elérési útját mindig szóközök és idézőjelek közé kell tenni, az alábbiak szerint:
docker run -v "/home/user/My Folder:/app" ubuntu
Cserélje ki a „/home/user/My Folder” részt a konténerbe csatolni kívánt könyvtár tényleges elérési útjára.
Változók nem megfelelő használata
A Dockerrel való munka során gyakori, hogy változókat használunk a parancsokban, különösen a képfájl verzióinak megadásakor. Ha azonban egy változó, például a $VERSION nincs helyesen beállítva, a Docker olyan problémákba ütközhet, mint az „Érvénytelen hivatkozási formátum” hiba.
Például futtassa a következő parancsot az Ubuntu Docker Hubból való lekéréséhez:
docker pull ubuntu:$VERSION
Itt a $VERSION paraméternek a lekérni kívánt Ubuntu rendszerkép verzióját kellene jelölnie. De ha nem rendelünk hozzá értéket, a Docker a parancsot "docker pull ubuntu:"-ként fogja értelmezni. Ez érvénytelen rendszerképnevet eredményez, mivel kettősponttal végződik, és hiányzik a szükséges verziócímke.
Változók helytelen használata
Ennek elkerülése érdekében győződjön meg arról, hogy a parancsban használt összes változó megfelelően van definiálva. Linux alatt a következő szintaxissal állíthat be egy változót.
$VERSION=latest
Ezután húzza le a megadott verziót a következő parancs végrehajtásával.
docker pull ubuntu:$VERSION
A Windows CMD-ben a set kulcsszóval kell definiálni egy változót (például a version-t), majd a %VARIABLE% szintaxissal kell hivatkozni rá olyan parancsokban, mint a docker pull.
set VERSION=latest
docker pull ubuntu:%VERSION%
Itt a $VERSION tartalmazza a legfrissebb értéket, így a Docker gond nélkül lekéri az ubuntu:latest rendszerképet . Szükség esetén egy adott verziót is hozzárendelhetsz, például 18.04-et.
Változók megfelelő definiálása
Másolás és beillesztés probléma
Előfordul, hogy a felhasználók online oktatóanyagokból vagy dokumentációból másolnak parancsokat. Ezek a másolt parancsok rejtett karaktereket, például láthatatlan szóközöket, nem angol írásjeleket vagy speciális idézőjeleket tartalmazhatnak. Ezek a karakterek észrevétlenül megrongálhatják a Docker-parancsokat.
Ennek elkerülése érdekében jobb, ha lehetőség szerint saját kezűleg írjuk be a parancsot, vagy először illesszük be egy egyszerű szövegszerkesztőbe a nem kívánt formázás eltávolításához.
Most, hogy ismeri a Dockerben az „Érvénytelen hivatkozásformátum” hiba gyakori okait és a javításának módját, jó úton halad afelé, hogy a jövőben elkerülje ezt a problémát. A nagybetűs írásmód ellenőrzésétől kezdve a változók helyes beállításáig ezek az egyszerű tippek sok időt és bosszúságot takaríthatnak meg. Ha készen áll a további felfedezésre, érdemes lehet megtanulnia, hogyan címkézheti és küldheti el egyéni Docker-képeit a beállításjegyzékbe, vagy hogyan tisztíthatja meg a nem használt képeket a rendszer tisztán tartása érdekében.