Я для себя определил универсальный подход для отладки в любом сетевом окружении.
В простейшем случае, когда разработчик один, а сервер за NAT, надо на сервер прокинуть порт через ssh.
ssh user@host -R 9000 localhost:9000
При этом в php.ini xdebug надо настроить чтобы он коннектился на localhost:9000.
Когда разработчиков много, я использую модифицированный dbgp прокси.
https://github.com/MadridianFox/php-xdebug-proxy
Если он стоит на том же сервере что и php, настройки xdebug те же. Прокси слушает 9000 порт. Каждый разработчик выбирает себе уникальный порт и прокидывает его по ssh на сервер. Так же надо обратно прокинуть 9001 порт чтобы зарегистрировать свой idekey в прокси.
ssh user@host -R 9002 localhost:9002 -L 9001 localhost:9001
И самое главное - при регистрации своего idekey через шторм в поле idekey надо написать myidekey:9002
В этом же окне порт прокси - 9001, хост прокси - localhost.
В настройках шторма указываем что для отладки надо слушать 9002 порт.
В браузере, не важно, используете вы расширение или прописываете XDEBUG_SESSION_START, надо указать myidekey без порта!
В случае с докером вы можете либо добавить ssh сервер в контейнер с самим php, либо поднять дополнительный ssh контейнер. При единоличной разработке этого достаточно. Просто в зависимости от размещения ssh прописываете разные хосты в xdebug. Прокидывает туда порт.
Если разработчиков больше одного - выделяете контейнер с ssh + dbgp прокси и каждый разработчик прокидывает туда свой порт.