>Или все же это инструмент в первую очередь для доставки контента?
Докер упрощает процесс доставки контента, но это не едиственный его плюс. Он позволяет быстро создать,воссоздать,повторить аналогичное окружение и зависимости которые необходимы твоему приложению в любом (почти) месте где есть поддержка docker.
> но билдить каждый раз после внесения изменений в код - что я от этого выиграю?
Ты не правильно используеш докер, если есть необходимость пересобирать контейнер при каждом изменении. Докер это окружение в котором работает твое приложение.
> Как с этим дела в реальной жизни, на реальном среднестатистическом проекте?
Повсеместно испольуется. Следующий шаг развития докер это k8s, а это mainstream. Если ты умееш работать с докером, то освоить k8s уже намного проще.
Если сильно упростить то контейнер докер это виртуальная машина на linux внутри которой крутиться одно приложение. В идеологии докера каждое приложение должно быть в отдельном контейнере - mysql,redis,php.
Докер позволяет обойти проблему зависимостей.
Помню когда первый раз столкнулся с docker, это была система анализа логов от ruckus. По своей структуре это был centos на котором было запущено 8-9 контейнеров docker. Таким подходом ruckus как минимум решил для себя проблему установки обновлений, тебе не надо ставить обновления на саму ОС, тебе достаточно обновить контейнер. Если контейнер не запустился, то просто откати его. Все библиотеки и зависимости внутри контейнеров. Это настолько упростило процесс разработки и доставки обновлений, что сложно и представить.