Skip to main content

docker 컨테이너 내부 timezone

· 2 min read
hwayoung kim
소주같은 개발자

logo

개요

docker 혹은 docker-compose로 서비스를 설치 및 운영하다보면 시간값이 9시간 느린 경우가 있습니다.

해당 경우는 docker 컨테이너 내부의 TimeZone이 EST 혹은 UTC로 설정되기 때문입니다.

이때 ntp를 설치하여 서버시간을 맞추려해도 적용이 되지 않고 서버 자체의 timezone을 변경하여 진행해야 합니다.

컨테이너 내부 TimeZone 확인

docker

docker exec -it `${container_name || ID}` /bin/bash
date
ls -la /etc/localtime

docker-compose

docker-compose exec ${NAME} bash
date
ls -la /etc/localtime

컨테이너 내부 TimeZone 설정

컨테이너의 내부 TimeZone을 설정하기 위해서는 TimeZone 정보를 마운트하는것으로 해결 할 수 있다.

docker

docker run -it --rm -v /usr/share/zoneinfo/Asia/Seoul:/etc/localtime:ro centos bash

docker-compose

services:
centos:
container_name: container
hostname: container
image: centos
volumes:
- /usr/share/zoneinfo/Asia/Seoul:/etc/localtime:ro # read-only
Reference