Вопрос: Порядок ваших действий при создании сервисов на Docker?

Лучший ответ:
Я обычно стягиваю конфиги софта для новых проектов из оф образов.
1) Можно как просто запулить сбилдить и запустить софт, так и через Dockerfile или даже docker-compose up -d --build, это уже личное дело как религия позволяет)
Вытягиваю обычно так:
PHP:
docker cp имя контейнера или сервиса:/usr/local/etc/php-fpm.conf  /var/www/projects/mynewproject/docker/php/php-fpm.conf
docker cp имя контейнера или сервиса:/usr/local/etc/php-fpm.d/www.conf  /var/www/projects/mynewproject/docker/php/www.conf
docker cp имя контейнера или сервиса:/usr/local/etc/php/php.ini-development  /var/www/projects/mynewproject/docker/php/php.ini
Левые пути это размещение в контейнере конфигов, правые пути это куда копировать на хост системе.
После получения исходных конфигов прописываю их в Dockerfile сервиса PHP:
COPY /var/www/projects/mynewproject/docker/php/php.ini /usr/local/etc/php/php.ini
COPY /var/www/projects/mynewproject/docker/php/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY /var/www/projects/mynewproject/docker/php/www.conf /usr/local/etc/php-fpm.d/www.conf

Правда я делаю это не через волюм конечно, но это опять же вопрос религии)

Собственно аналогично можно вытянуть конфиги и для Nginx:
docker cp имя контейнера или сервиса:/etc/nginx/nginx.conf  /var/www/projects/mynewproject/docker/nginx/nginx.conf
docker cp имя контейнера или сервиса:/etc/nginx/conf.d/default.conf  /var/www/projects/mynewproject/docker/nginx/default.conf
Для нового Nginx даже вроде есть файл конфига шаблона: /etc/nginx/templates/default.conf.template, который можно взять за основу для виртуалхостов nginx.
Ну а для БД и прочего софта думаю не составит труда поковырять оф образы или погуглить)

2) Если правильно понял на счет модулей ext-php:
Тут несколько вариантов модули которые входят в базовую сборку php можно установить так:
RUN docker-php-ext-install -j$(nproc) soap
Те которые нужно установить и принудительно включить:
RUN docker-php-ext-install -j$(nproc) opcache && docker-php-ext-enable opcache
Еще есть которые нужно конфигурировать вроде zip:
RUN apt-get update && apt-get install -y --no-install-recommends libzip-dev zip
RUN docker-php-ext-configure zip && docker-php-ext-install -j$(nproc) zip
А еще можно ставить из PECL расширения на примере pthreads:
RUN pecl install pthreads && docker-php-ext-enable pthreads

В общем докенезировать можно php проект главное знать основы докера и специфику софта который нужно в этом самом докере поднять.

Худший ответ:
Я обычно стягиваю конфиги софта для новых проектов из оф образов.
1) Можно как просто запулить сбилдить и запустить софт, так и через Dockerfile или даже docker-compose up -d --build, это уже личное дело как религия позволяет)
Вытягиваю обычно так:
PHP:
docker cp имя контейнера или сервиса:/usr/local/etc/php-fpm.conf  /var/www/projects/mynewproject/docker/php/php-fpm.conf
docker cp имя контейнера или сервиса:/usr/local/etc/php-fpm.d/www.conf  /var/www/projects/mynewproject/docker/php/www.conf
docker cp имя контейнера или сервиса:/usr/local/etc/php/php.ini-development  /var/www/projects/mynewproject/docker/php/php.ini
Левые пути это размещение в контейнере конфигов, правые пути это куда копировать на хост системе.
После получения исходных конфигов прописываю их в Dockerfile сервиса PHP:
COPY /var/www/projects/mynewproject/docker/php/php.ini /usr/local/etc/php/php.ini
COPY /var/www/projects/mynewproject/docker/php/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY /var/www/projects/mynewproject/docker/php/www.conf /usr/local/etc/php-fpm.d/www.conf

Правда я делаю это не через волюм конечно, но это опять же вопрос религии)

Собственно аналогично можно вытянуть конфиги и для Nginx:
docker cp имя контейнера или сервиса:/etc/nginx/nginx.conf  /var/www/projects/mynewproject/docker/nginx/nginx.conf
docker cp имя контейнера или сервиса:/etc/nginx/conf.d/default.conf  /var/www/projects/mynewproject/docker/nginx/default.conf
Для нового Nginx даже вроде есть файл конфига шаблона: /etc/nginx/templates/default.conf.template, который можно взять за основу для виртуалхостов nginx.
Ну а для БД и прочего софта думаю не составит труда поковырять оф образы или погуглить)

2) Если правильно понял на счет модулей ext-php:
Тут несколько вариантов модули которые входят в базовую сборку php можно установить так:
RUN docker-php-ext-install -j$(nproc) soap
Те которые нужно установить и принудительно включить:
RUN docker-php-ext-install -j$(nproc) opcache && docker-php-ext-enable opcache
Еще есть которые нужно конфигурировать вроде zip:
RUN apt-get update && apt-get install -y --no-install-recommends libzip-dev zip
RUN docker-php-ext-configure zip && docker-php-ext-install -j$(nproc) zip
А еще можно ставить из PECL расширения на примере pthreads:
RUN pecl install pthreads && docker-php-ext-enable pthreads

В общем докенезировать можно php проект главное знать основы докера и специфику софта который нужно в этом самом докере поднять.