도커 컨테이너 타임존이 메인 시스템과 다를 때

뒤늦게 도커의 신비함에 푹 빠졌다. 알면 알수록 재미있는 플랫폼이다. 컴퓨터 만지기를 좋아하는 필자에게 최고의 장난감이다. 도커 컴포즈를 이용해 여러 이미지를 설치했다 지웠다를 반복하며 조금씩 도커 시스템에 적응 중이다. 최근 도커를 이용해 컨테이너를 빌드 하면서 시스템과 컨테이너의 시간이 서로 다르다는 것을 발견했다. 도커 컨테이너 타임존 변경에 대해 검색을 해 보니 콘솔 명령어를 이용해 시간을 변경이 가능해보였다. 허나 수시로 이미지 빌드를 하면서 도커와 시간을 보내고 있는 관계로 처음부터 이미지 빌드 할 때 부터 타임존을 한국으로 세팅을 하고 싶었다. 이 또한 docker-compose.yml 파일에 간단한 설정값만 입력해주면 가능했다. 이 글에서는 docker-compose.yml 파일에서 타임존 설정 방법을 소개하도록 하겠다.

도커 컨테이너 타임존이 메인 시스템과 다를 때

1. 도커 컨테이너 타임존 확인

sudo docker ps -a

docker ps -a 명령어를 이용해 도커 컨테이너 전체 리스트를 불러와 컨테이너의 정확한 이름을 확인한다.

 

sudo docker exec 컨테이너Name/컨테이너ID date

전체 컨테이너 리스트를 확인해 컨테이너의 이름을 알아냈으면 docker exec container-name(또는 container-ID) date 명령어로 컨테이너의 시간을 확인한다.

Tue May 17 09:59:09 UTC 2022

아마도 타임존 설정을 따로 하지 않았다면, 위와 같이 티임존 세팅이 기본값인 UTC로 되어 있을 거다.

 

2. docker-compose.yml 타임존 세팅


environmnet:
  -TZ=Asia/Seoul

service 항목 안에 environment를 추가해 타임존을 입력한다.

 

3. 컨테이너 빌드

sudo docker-compose up -d --force-recreate --build

docker-compose.yml 파일에서 타임존 세팅을 완료 했으면, docker-compose up 명령어를 실행해 새롭게 컨테이너를 생성한다.

docker-compose 옵션 소개

  • -d: 백그라운드 실행
  • –force-recreate: 설정 변경 내역이 없더라도 강제로 컨테이너 만듬
  • –build: 컨테이너 시작 전에 이미지 빌드

docker-compose up options reference

 

4. 도커 컨테이너 타임존 재확인

sudo docker exec 컨테이너-Name/컨테이너-ID date

컨테이너 타임존 확인 명령어를 콘솔창에 넣어 컨테이너의 타임존을 확인한다. 정상적으로 반영이 됐는지 여부를 확인한다.

Tue May 17 19:06:07 KST 2022

KST 한국 시간으로 변경이 됐다면 성공이다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다