Зачем: Докер нужен, чтобы запускать код в контейнерах, но разные языки имеют свою специфику сборки. Эта тема покажет особенности сборки контейнеров с разными ЯП.
Теория: Multistage сборка, размер Image. ruby, php, python, go, java, c#, c++
Практика: Собираем один контейнер с компилируемым кодом и один без.