Чтобы запускать докер внутри докера, есть такая штука как DinD. Такое стоит использовать не всегда. Возможно, достаточно будет просто прокинуть докеровский сокет внутрь контейнера.
Зачем вам открытый порт на агентах, если активный вариант работы актуален в достаточно небольшом диапазоне случаев, а по умолчанию обычно используют пассивный, для которого достаточно открытого порта на сервере?
Это не множество процессов - процесс один и тот же. Это активные TCP-сессии. Почему их много - вопрос к приложению, подключающемуся к memcached. Смотрите настройки РНР, имхо.
Смотреть логи клиента, смотреть логи сервера. Если увидите разницу - снимать дамп трафика и анализировать. Если в веб-сервере всё на месте, а в РНР нет, значит дело в последнем (обычно именно так и бывает).