Sobes.tech
Junior

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.