1) В Dockerfile вы записываете то же самое что делали бы вручную, так что раз хорошенько подумать - и потом пользоваться много раз; сам начал с ручной настройки, не рекомендую
2) Нет такого, это не касается самой Ubuntu; вы можете сделать аналогичное при запуске контейнера с помощью ключа -p либо сделать практически пустой Dockerfile c командой EXPOSE 80 чтобы зашить в образ
К стати, если не секрет, что именно собираетесь построить? Может посоветую чего, имею наработки с открытым кодом.