← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 50: Timezone і locale

Технологія: Docker

Номер лабораторної: 50 · Рівень: middle

Тема: Часові пояси та локалі у контейнерах

Повний опис / сценарій лабораторної:

Мета: навчитися коректно налаштовувати часовий пояс і локаль у контейнері для журналів і застосунків.



Крок 1. Запустити контейнер без додаткових налаштувань.

Команда: docker run --rm -it ubuntu date

Пояснення: зверни увагу на часовий пояс у виводі.



Крок 2. Перевірити локаль всередині контейнера.

Команда: docker run --rm -it ubuntu locale

Пояснення: зазвичай дефолтна локаль en_US або C.



Крок 3. Створити Dockerfile який встановлює потрібну локаль.

Пояснення: наприклад uk_UA.UTF-8 або іншу яку ти використовуєш.



Крок 4. Додати в Dockerfile генерацію цієї локалі.

Пояснення: через locale-gen або аналогічний механізм для дистрибутиву.



Крок 5. Зібрати образ і перевірити locale.

Команда: docker build -t lab50-locale .; docker run --rm lab50-locale locale



Крок 6. Примонтувати timezone хоста у контейнер.

Команда: docker run --rm -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime lab50-locale date

Пояснення: тепер час у контейнері відповідає часу хоста.



Крок 7. Оцінити чи потрібно завжди наслідувати timezone хоста.

Пояснення: іноді логічно зберігати час у UTC незалежно від хоста.



Крок 8. Перевірити як час і локаль впливають на формат логів твого застосунку.

Пояснення: дата, назви місяців і формат чисел можуть змінюватися.



Крок 9. Задокументувати стандарт для time locale у прод середовищі.

Пояснення: наприклад всі контейнери живуть у UTC а форматування часу перекладає UI.



Крок 10. Міні звіт.

Завдання: опиши потенційні проблеми якщо частина сервісів працює у різних часових поясах.