В вашем простом примере нет большой разницы, но будет разница, если вам нужны функции оболочки, такие как подстановка переменных, например, $HOME
.
Это форма оболочки.Он вызовет командную оболочку:
CMD echo 'Hello world'
Это форма exec.Он не вызывает командную оболочку:
CMD ["/usr/bin/echo", "Hello World"]
Форма exec анализируется как массив JSON, что означает, что вы должны использовать двойные кавычки вокруг слов, а не одинарные кавычки, и вы должны датьполный путь к исполняемому файлу.Форма exec является предпочтительным форматом CMD.