Τι είναι το 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 για την παροχή προεπιλεγμένων παραμέτρων σε αυτό το αρχείο.