Скорее всего проблемы связаны с тем, что во всех способах, которые Вы попробовали, apache запускается в фоновом процессе, который порождается из основного, после чего основной процесс завершает свою работу. C точки зрения докера контейнер при этом тоже завершает свою работу.
Чтобы этого не происходило, запускайте apache с ключом
FOREGROUND
, например:
CMD ["apache2", "-DFOREGROUND"]
Тут можно подробнее почитать почему так происходит, про философию докера и процессов внутри контейнера:
https://blog.phusion.nl/2015/01/20/docker-and-the-...