Это действительно просто. Назначение двух команд различно.
Когда вы хотите создать свой собственный образ для вашей конкретной цели, вы идете через два шага:
Найдите подходящее базовое изображение для начала. И там много изображений. Здесь вы используете предложение FROM ... Чтобы получить отправную точку.
Специализируйте изображение для более конкретной цели. И именно здесь вы используете RUN для установки новых вещей в новый образ и часто также для копирования, чтобы добавить сценарии и конфигурации в новый образ.
Итак, в вашем случае: если вы хотите контролировать установку Apache, вы начинаете с базового образа Debian (FROM) и сами управляете установкой на Apache (RUN). Или, если вы хотите упростить задачу, найдите изображение, где Apache уже есть, готовый к запуску.