Mi az az entrypoint és a cmd a Docker kontextusában?
sobes.tech MI
Válasz az MI-től
Az ENTRYPOINT meghatározza azt a parancsot, amely a konténer indításakor végrehajtódik. Ha docker run futtatásakor CMD vagy parancssori paraméterek kerülnek megadásra, azok argumentumként kerülnek hozzáadásra ehhez a parancshoz.
A CMD alapértelmezett argumentumokat biztosít az ENTRYPOINT-hez, vagy külön parancsként fut, ha az ENTRYPOINT nincs meghatározva. Ha a konténer indításakor paramétereket adnak meg, azok felülírják a CMD értékét.
Különbségek:
| Jellemző | ENTRYPOINT | CMD |
|---|---|---|
| Cél | A fő végrehajtandó parancs meghatározása | Alapértelmezett argumentumokat vagy parancsot biztosít |
| Felülírás | docker run --entrypoint szükséges |
A docker run argumentumaival felülírható |
Használat az ENTRYPOINT-tel |
Argumentumok az ENTRYPOINT-hez |
Alapértelmezett parancs, ha nincs ENTRYPOINT |
Példák:
Az ENTRYPOINT és CMD használatával:
# Dockerfile
FROM alpine:latest
ENTRYPOINT ["echo", "Helló"]
CMD ["Világ!"]
A docker run saját-kép futtatásakor: végrehajtódik az echo Helló Világ!
A docker run saját-kép Univerzum! futtatásakor: végrehajtódik az echo Helló Univerzum!
Csak CMD-vel:
# Dockerfile
FROM alpine:latest
CMD ["echo", "Helló Világ!"]
A docker run saját-kép futtatásakor: végrehajtódik az echo Helló Világ!
A docker run saját-kép echo Helló Docker! futtatásakor: felülírja a CMD-t, és végrehajtódik az echo Helló Docker!
Ajánlott az ENTRYPOINT használata az futtatható fájlhoz, és a CMD a alapértelmezett paraméterek átadásához ehhez a fájlhoz.