Sobes.tech
Junior

Τι είναι το entrypoint και το cmd στο πλαίσιο του Docker;

sobes.tech AI

Απάντηση από AI

Το ENTRYPOINT ορίζει την εντολή που θα εκτελεστεί κατά την εκκίνηση του κοντέινερ. Αν δοθούν CMD ή παράμετροι εντολής κατά την εκτέλεση του docker run, προστίθενται ως επιχειρήματα σε αυτήν την εντολή.

Το CMD παρέχει προεπιλεγμένα επιχειρήματα για το ENTRYPOINT ή εκτελείται ως ξεχωριστή εντολή αν το ENTRYPOINT δεν οριστεί. Αν δοθούν παράμετροι κατά την εκκίνηση του κοντέινερ, υπερισχύουν την τιμή του CMD.

Διαφορές:

Χαρακτηριστικό ENTRYPOINT CMD
Σκοπός Ορίζει την κύρια εντολή προς εκτέλεση Παρέχει προεπιλεγμένα επιχειρήματα ή εντολή
Υπερκαλύπτεται Απαιτεί docker run --entrypoint Μπορεί να υπερχείρει από τα επιχειρήματα του docker run
Χρήση με ENTRYPOINT Επιχειρήματα για το ENTRYPOINT Προεπιλεγμένη εντολή αν δεν υπάρχει ENTRYPOINT

Παραδείγματα:

Με ENTRYPOINT και CMD:

# Dockerfile
FROM alpine:latest
ENTRYPOINT ["echo", "Γειά"]
CMD ["Κόσμε!"]

Κατά την εκτέλεση docker run η-εικόνα-σου θα εκτελεστεί echo Γειά Κόσμε! Κατά την εκτέλεση docker run η-εικόνα-σου Ουρανό! θα εκτελεστεί echo Γειά Ουρανό!

Μόνο με CMD:

# Dockerfile
FROM alpine:latest
CMD ["echo", "Γειά Κόσμε!"]

Κατά την εκτέλεση docker run η-εικόνα-σου θα εκτελεστεί echo Γειά Κόσμε! Κατά την εκτέλεση docker run η-εικόνα-σου echo Γειά Docker! θα υπερχείρει το CMD και θα εκτελεστεί echo Γειά Docker!

Συνιστάται η χρήση του ENTRYPOINT για το εκτελέσιμο αρχείο και του CMD για την παροχή προεπιλεγμένων παραμέτρων σε αυτό το αρχείο.