A Docker érvénytelen hivatkozási formátum

A Docker Ervenytelen Hivatkozasi Formatum



Amikor Docker-képekkel vagy Dockerfile-lel dolgozik, előfordulhat, hogy „érvénytelen referenciaformátum” hibaüzenet jelenik meg.

Ebből az oktatóanyagból megtudjuk, mit jelent ez a hiba, miért fordul elő, és hogyan oldhatja meg a Docker-használat során.

Mi az a képreferencia a Dockerben?

A Dockerben a képhivatkozás egy adott Docker-kép azonosításának és helyének meghatározására szolgáló módszerre vonatkozik a Docker-nyilvántartásban (Docker Hub) vagy a helyi Docker-gazdagépen.







Alapértelmezés szerint a képreferencia két fő összetevőből áll:



Repository – Az első rész meghatározza a célkép tárhelyét. Ez a Docker image legfelső szintű szervezeti egysége, amelyet főként a szervezet vagy a képet kezelő személy képviseletére használnak. Például találhat egy Microsoft/SQL-szerver nevű képet. Ebben az esetben az első rész az arculatot fenntartó szervezetet reprezentálja.



Címke – A kép második része a kép adott verziójához vagy változatához társított címke a tárhelyen belül. A képcímkék ugyanazon kép különböző verzióit, különböző kiadásokat vagy eltérő kompatibilitást képviselhetnek. Például az nginx:latest képében, ahol a legújabb címke az Nginx kép legújabb verziójára utal.





Amikor a képet Dockerfile vagy Docker parancsban adja meg, a kép nevének követnie kell a következő elnevezési szabályokat:

  • Az adattár nevének kisbetűnek kell lennie.
  • A tároló tartalmazhat betűket, számokat, kötőjeleket (-), aláhúzásjeleket (_) vagy perjeleket (/) is, amelyek jelzik a rendszerleíró adatbázison belüli szervezetet vagy csoportosítást.
  • A kép nevében nem lehet szóköz karakter (szóköz vagy tabulátor).

A Docker érvénytelen hivatkozási formátum

Ha a Dockerfile vagy Docker parancs futtatásakor az „érvénytelen hivatkozási formátum” hibaüzenet jelenik meg, az azt jelenti, hogy az Ön neve nem felel meg a fenti szabályoknak.



Egy példa a képen látható:

$ docker pull BusyBox

Ha a fenti parancsot futtatjuk, akkor a képen látható hibát ad vissza:

érvénytelen referencia formátum: az adattár nevének kisbetűsnek kell lennie

Ebben az esetben azt jelzi, hogy a képnév formátuma nem megfelelő, mivel a kép nevének mindig kisbetűnek kell lennie.

A Docker érvénytelen referenciaformátum-hibájának javítása

Ahogy sejtheti, az első módszer a kép referenciaformátumának megfelelőségének biztosítása. Ez magában foglalja a képnév érvényességének ellenőrzését.

Például a fenti parancsban kijavíthatjuk a hibát, ha a kép nevét a következőképpen adjuk meg:

$ sudo docker pull busybox: legfrissebb

Ebben az esetben a parancsnak a Busybox kép legújabb verzióját kell lekérnie.

2. módszer – Hosszú Docker-parancsok felosztása

Más esetekben előfordulhat, hogy „érvénytelen referenciaformátum” hibával találkozhat egy hosszú Docker-parancs futtatásakor.

Ilyen esetben jó gyakorlat a parancs több sorra osztása. A parancsfelosztás módja a shelltől és a rendszertől függ.

  • A Bash shell esetén azonban használja a többsoros escape karaktert vagy a fordított perjelet (\).
  • A PowerShell esetében használhatja a backtick karaktert (`).
  • Végül, ha a Parancssorban van, használhat egy caret karaktert ^ néven

Például a Bash-on futtassa a parancsot a következőképpen:

$ sudo dokkoló épít \

-azt \

foglaltság \

SH

A PowerShellben az alábbi módon futtathatja a parancsot:

$ sudo dokkoló épít `

-azt `

busybox `

SH

És végül, ha a Parancssorban van, használja a parancsot a képen látható módon:

$ sudo docker build ^

-azt ^

busybox ^

SH

3. módszer – ${pwd} ÉS $(pwd) elérési út

A hiba másik gyakori oka a ${pwd} változó használata. Ez ütközést okozhat, attól függően, hogy milyen típusú shell-en hajtja végre az említett parancsot.

PowerShell esetén a ${pwd} változót kell használnia a $(pwd) helyett.

Ahogy sejtheti, a Bash esetében a zárójeles formátumot használja a hajlított kapcsos bemenet helyett, mint $(pwd).

Következtetés

Ez a bejegyzés az „érvénytelen referenciaformátum” fő okait tárgyalta, amikor Dockerfile- vagy docker-parancsokkal dolgozik. Három fő módszert is megvizsgáltunk, amelyek segítségével kijavíthatja ezt a problémát.