본문 바로가기

나의 플랫폼/리눅스

[Docker] Container 에 Timezone 설정 하기.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

혹시 Oracle 을 사용하다가 아래와 같은 에러를 본 적이 있는가?


ORA-01882: timezone region not found while connecting to Oracle


위 와 같은 에러가 발생 한 이유는 간단한다.


Oracle이 설치 되어 있는 타임존과 Oracle에 접속하고자 하는 타임존이 다른 경우 발생 한다.



Docker 같은 경우 기본적으로 UTC로 타임존이 지정 된다.


따라서 별도로 지정 하지 않으면 문제가 없지만, 만약 Oracle은 KST 인데  Tomcat은 UTC 일 경우 


위와 같은 에러가 계속 발생하게 된다.



그럼... 어떻게 하면 되냐?


내가 여러 조사를 해본 결과 Docker를 다시 run 시키는게 가장 좋아 보였다.


먼저 Ubuntu에 /etc/localtime로 링크 시킨다.

sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime



그런 다음 아래와 같이 docker run 명령어 사이에 아래와 같은 옵션을 넣어 주면 된다.


docker run ...
-v /etc/localtime:/etc/localtime:ro \
-e TZ=Asia/Seoul \

...


끝~ 


그래서 해당 도커에 들어가서 

$date

라고 치면 KST 라는 결과를 확인 할 수 있다.

참고하세요.