Нужно линковать один контейнер к другому, тогда внутри другого можно будет обращаться не по IP, а по имени. А ещё для формализации этого дела можно использовать Docker compose - таким образом вы определяете набор контейнеров, которые вместе предоставляют собой готовый сервис.
Пример:
https://github.com/nazar-pc/docker-webserver#how-to-use
Там в отдельных контейнерах PHP-FPM, Nginx, MariaDB, SSH, всё линкуется друг к другу, всё опционально, всё можно обновлять по отдельности.
Так же официальные образы, тот же mysql сделаны аналогичным образом - линкуете его куда нужно, в том контейнере подключаетесь уже по имени mysql, вне зависимости от его IP.
К примеру, можете взять официальный образ PHP (который уже с Apache2 комплектуется) и официальный образ MySQL, кастомизируйте при необходимости (можно взять за основу для своего образа) и всё будет работать.