Подробный ответ см .: Дональд Кнут, «Искусство компьютерного программирования» (ака TAOCP). Том 4А, «Перечисление и обратное отслеживание», глава 7.2. Создание всех возможностей. http://www-cs-faculty.stanford.edu/~uno/taocp.html
EXPOSE
не предоставляет само CMD
, CMD
является отдельным параметром в синтаксисе файла Docker. С учетом сказанного ваш Dockerfile должен выглядеть следующим образом:
FROM ubuntu
RUN apt-get update
RUN apt-get install –y apache2
RUN apt-get install –y apache2-utils
RUN apt-get clean
EXPOSE 80
CMD [“apache2ctl”, “-D”, “FOREGROUND”]