TIL - Docker 타임존 설정

Docker timezone 문제

벌써 container에 작업환경을 구성하고 즐거운 코딩 생활을 이어간지는 좀 되었다.

드디어 내가 원하던 mysql 명령어도 모르는 바보 host 맥북 완성


그러나 오늘 한가지 문제점을 알게 되었는데,

바로 timezone이 host와 다르게 Asia/Seoul이 아니라는 것이다.

사실 따지고 보면 시간대와 관련된 설정을 해준적이 없었기에(못난 아비라 미안하다...!) 당연한 결과였지만 진성 한국인이라 저런 timestamp column마저 한국 시간대로 작성되면 좋겠다고 생각한 나는(nest start --watch에서의 로그마저도 시간대가 한국 시간대가 아니다) 이 문제를 해결할 방법들을 찾아나섰다.

run 명령어와 함께 timezone 설정

이 방법은 container를 run 시킬때 timezone 설정을 같이 부여하는 방법으로

docker run -it --name ubuntu -v /etc/localtime:/etc/localtime ubuntu

와 같이 -v 옵션으로 호스트의 /etc/localtime을 공유해 시간대를 공유하는 방식이다.

그러나 나는 이미 container가 돌아가고 있는 상태였고, commit해서 모든 데이터를 보존할 수 있지만 다시 run 시키기 너무 귀찮아서 스킵했다. 또한 run 시킬때 최소한의 옵션들만 부여하고 싶었기에도 사용하지 않은 방법이다.

tzdata 사용하기

이 방법이 내가 적용한 방법인데, 그냥 간단하게 tzdata를 설치해 timezone을 잡아주는 방식이다.
방법도 상당히 간단한데,

apt-get update
apt-get install tzdata
export TZ=Asia/Seoul

이 3줄의 명령어가 끝이다.

이로써 나의 로그들도 정상적인 시간대로 돌아왔고, mysql의 timestamp column들의 값도 제자리를 찾을 수 있었다.

좋은 웹페이지 즐겨찾기