Какво са entrypoint и cmd в контекста на Docker?
sobes.tech AI
Отговор от AI
ENTRYPOINT определя командата, която ще бъде изпълнена при стартиране на контейнера. Ако при изпълнение на docker run бъдат предадени CMD или параметри на командата, те се добавят като аргументи към тази команда.
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 за предаване на стандартни параметри към този файл.