На примере Node.js

Если вы собираете свой докер для Node.js, то позаботьтесь о настройке правильной локали и таймзоны. Если их не настроить, то методы toLocaleString() будут работать не так, как вы ожидали, да и серверное время, в связи с этим, будет отличаться.

Когда я озаботился о настройке локали в докер образе, который я собирал на базе официального Node:lts, я столкнулся с тем, что это может быть не тривиальной задачей и придется посетить не один пост на SO, прежде чем найдете ответы, смиксуете их и все заработает как надо.

Вот мой финальный рецепт, который я использую:

FROM node:lts

ENV TZ 'Europe/Moscow'
ENV LC_ALL ru_RU.UTF-8
ENV LANG ru_RU.UTF-8
ENV LANGUAGE ru_RU.UTF-8

RUN echo $TZ > /etc/timezone
RUN apt-get update && DEBIAN_FRONTEND=noninteractive \
      && apt-get install -y locales tzdata systemd

RUN sed -i -e 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen \
      && dpkg-reconfigure --frontend=noninteractive locales \
      && update-locale LANG=ru_RU.UTF-8

RUN echo "LANGUAGE=ru_RU.UTF-8" >> /etc/default/locale && 
    echo "LC_ALL=ru_RU.UTF-8" >> /etc/default/locale

RUN rm /etc/localtime && 
    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && 
    dpkg-reconfigure -f noninteractive tzdata

RUN localedef -c -f UTF-8 -i ru_RU ru_RU.UTF-8
RUN apt-get clean