A tárolópéldány parancssorának beállítása az alapértelmezett parancssori művelet felülbírálásához
Tárolópéldány létrehozásakor megadhat egy parancsot, amellyel felülbírálhatja a tárolórendszerképbe beszúrt alapértelmezett parancssori utasítást. Ez a viselkedés hasonló a --entrypoint
parancssori argumentumhoz a következőhöz: docker run
.
A tárolópéldányok környezeti változóinak beállításához hasonlóan a kezdő parancssor megadása is hasznos kötegelt feladatokhoz, ahol az egyes tárolókat dinamikusan, feladatspecifikus konfigurációval kell előkészítenie.
Parancssori irányelvek
Alapértelmezés szerint a parancssor egyetlen folyamatot határoz meg, amely a tárolóban nem tartalmaz rendszerhéjat . Előfordulhat például, hogy a parancssor egy Python-szkriptet vagy végrehajtható fájlt futtat. A folyamat további paramétereket vagy argumentumokat is megadhat.
Több parancs végrehajtásához indítsa el a parancssort a tároló operációs rendszer által támogatott rendszerhéj-környezet beállításával. Példák:
Operációs rendszer Alapértelmezett rendszerhéj Ubuntu /bin/bash
Alpesi /bin/sh
Windows cmd
Kövesse a rendszerhéj konvencióit több parancs egymás után történő futtatásához.
A tároló konfigurációjától függően előfordulhat, hogy teljes elérési utat kell beállítania a végrehajtható parancssorhoz vagy argumentumokhoz.
Állítson be egy megfelelő újraindítási szabályzatot a tárolópéldányhoz attól függően, hogy a parancssor hosszú ideig futó vagy egyszer futtatott feladatot ad-e meg. Például egy futtatásos feladat újraindítási szabályzata
Never
ajánlott vagyOnFailure
javasolt.Ha információra van szüksége egy tárolórendszerkép alapértelmezett belépési pontkészletéről, használja a docker-rendszerkép-vizsgálat parancsot.
Parancssori szintaxis
A parancssor szintaxisa a példányok létrehozásához használt Azure API-tól vagy eszköztől függően változik. Ha rendszerhéj-környezetet ad meg, tartsa be a rendszerhéj parancsszintaxis-konvencióit is.
az container create parancs: Adjon meg egy sztringet a
--command-line
paraméterrel. Példa:--command-line "python myscript.py arg1 arg2"
).New-AzureRmContainerGroup Azure PowerShell parancsmag: Adjon meg egy sztringet a
-Command
paraméterrel. Példa:-Command "echo hello"
.Azure Portal: A tárolókonfiguráció Parancs felülbírálás tulajdonságában adja meg a sztringek vesszővel tagolt listáját idézőjelek nélkül. Példa:
python, myscript.py, arg1, arg2
).Resource Manager sablont vagy YAML-fájlt vagy az Azure SDK-k egyikét: Sztringek tömbjeként adja meg a parancssori tulajdonságot. Példa: egy Resource Manager sablon JSON-tömbje
["python", "myscript.py", "arg1", "arg2"]
.Ha ismeri a Dockerfile szintaxisát, ez a formátum hasonló a CMD-utasítás exec formájához.
Példák
Azure CLI | Portál | Sablon | |
---|---|---|---|
Egyetlen parancs | --command-line "python myscript.py arg1 arg2" |
Parancs felülbírálása: python, myscript.py, arg1, arg2 |
"command": ["python", "myscript.py", "arg1", "arg2"] |
Több parancs | --command-line "/bin/bash -c 'mkdir test; touch test/myfile; tail -f /dev/null'" |
Parancs felülbírálása: /bin/bash, -c, mkdir test; touch test/myfile; tail -f /dev/null |
"command": ["/bin/bash", "-c", "mkdir test; touch test/myfile; tail -f /dev/null"] |
Azure CLI-példa
Példaként módosítsa a microsoft/aci-wordcount tárolórendszerkép viselkedését, amely Shakespeare Hamletjében elemzi a szöveget, hogy megtalálja a leggyakrabban előforduló szavakat. A Hamlet elemzése helyett beállíthat egy olyan parancssort, amely egy másik szövegforrásra mutat.
A microsoft/aci-wordcount tároló kimenetének megtekintéséhez az alapértelmezett szöveg elemzésekor futtassa az alábbi az container create paranccsal. Nincs megadva kezdő parancssor, ezért az alapértelmezett tárolóparancs fut. Szemléltetés céljából ez a példa a környezeti változókat úgy állítja be, hogy megkeresse a legalább öt betűből álló első 3 szót:
az container create \
--resource-group myResourceGroup \
--name mycontainer1 \
--image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
--environment-variables NumWords=3 MinLength=5 \
--restart-policy OnFailure
Ha a tároló állapota Leállítva állapotúként jelenik meg (az az container show használatával ellenőrizze az állapotot), a kimenet megtekintéséhez jelenítse meg a naplót az az container logs paranccsal.
az container logs --resource-group myResourceGroup --name mycontainer1
[('HAMLET', 386), ('HORATIO', 127), ('CLAUDIUS', 120)]
Most állítson be egy második példatárolót a különböző szövegek elemzéséhez egy másik parancssor megadásával. A tároló wordcount.py által végrehajtott Python-szkript argumentumként fogad el egy URL-címet, és az alapértelmezett helyett feldolgozza a lap tartalmát.
Például a Rómeóban és Júliában legalább öt betűből álló első 3 szó meghatározásához:
az container create \
--resource-group myResourceGroup \
--name mycontainer2 \
--image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
--restart-policy OnFailure \
--environment-variables NumWords=3 MinLength=5 \
--command-line "python wordcount.py http://shakespeare.mit.edu/romeo_juliet/full.html"
A tároló leállása után is tekintse meg a kimenetet a tároló naplóinak megjelenítésével:
az container logs --resource-group myResourceGroup --name mycontainer2
[('ROMEO', 177), ('JULIET', 134), ('CAPULET', 119)]
Következő lépések
A feladatalapú forgatókönyvek, például a több tárolóval rendelkező nagy adathalmaz kötegelt feldolgozása, futásidőben kihasználhatják az egyéni parancssorokat. A feladatalapú tárolók futtatásával kapcsolatos további információkért lásd: Tárolóalapú tevékenységek futtatása újraindítási szabályzatokkal.