CMD
або echo - команда Hello World - аргументи командиПід час запуску docker контейнеру є можливість перезапису команди CMD :
Тут echo “Hello World” виконано не буде. + Якщо сам Dockerfile містить декілька CMD то виконається останняENTRYPOINT
Зазвичай вказують в Dockerfile та не змінюють (лише в цілях тестування в docker run за включем --entrypoint можна змінити). ENTYPOINT використовують більше як запуск конкретної програми, а вже CMD для аргументів.
docker run cmd:1.0 printenv
Перезапишеться CMD ["Hello World"] і вивід у терміналі буде:
docker run cmdenv:1.0 Dear Student
Виведе
Hello Dear Student
Інструкцією ENTRYPOINT ми визначили команду і параметр для неї, які будуть виконуватись при старті контейнера — echo Hello. Цю команду не можна перевизначити. Також ми задали додатковий параметр, який можна перезадати при запуску контейнера.
Підсумуємо:
ENTRYPOINTтаCMDможна використати, щоб запусти основний процес в контейнері. Команду в CMD можна перевизначити, а вENTRYPOINT— ні, лише задати додаткові параметри.ENTRYPOINTвикористовуй, коли пишешDockerfile, який має виконуватись як програма, і коли ти не хочеш, щоб основну команду можна було перевизначити.CMDвикористовуй, щоб задати додаткові параметри за замовчуванням для команди вENTRYPOINT. Таким чином користувачDockerfileзможе перевизначити їх при потребі.