[docker-compose] 도커 컨테이너 timezone 설정하기 (docker container timezone settings)

이수진·2022년 8월 13일
4

서버에서 수행한 작업의 시간을 저장해야하는 작업이 있는데,
우분투 서버의 시간을 변경해주어도 해결되지 않았습니다.

원인을 찾아보니,
서버의 시간과 도커 컨테이너의 시간도 또 별개였습니다.

즉, 도커 컨테이너의 timezone 설정을 해야했습니다.

저는 docker-compose를 이용하여 컨테이너를 구축해서,
docker-compose 설정 파일에서 이를 설정했습니다.

✔️ docker-compose.yml 설정

도커 컨테이너 각각의 environment 속성에
- TZ=Asia/Seoul 또는 TZ: "Asia/Seoul" 을 추가로 작성해줍니다.

# docker-compose.yml

...

  nginx:
    container_name: nginx
    build: ./config/nginx
    environment:
      TZ: "Asia/Seoul"  # timezone 설정 부분
      
...

저는 띄운 모든 컨테이너 각각의 timezone을 Asia/Seoul로 바꾸었습니다.

✔️ Dockerfile 설정

docker-compose에서 timezone 세팅만 했다고 끝이 아닙니다!
Dockerfile에서 추가로 작성해주어야 할 부분이 있습니다.

RUN apk add tzdata

위의 명령어를 꼭 같이 Dockerfile에 넣어야,
docker-compose에서 설정한 timezone이 반영이 됩니다!

✔️ 컨테이너에 접속해서 변경 확인하기

ubuntu@ip-172-31-45-97:~$ docker ps
CONTAINER ID   IMAGE                  COMMAND                  CREATED        STATUS        PORTS                                                                                                                     NAMES
338e5edabef5   ubuntu_celery_beat     "sh -c 'celery -A dn…"   3 hours ago    Up 3 hours                                                                                                                              celery_beat
81a257231d4b   ubuntu_celery_worker   "sh -c 'celery -A dn…"   3 hours ago    Up 3 hours                                                                                                                              celery_worker
02bb2eb93254   ubuntu_web             "sh config/docker/en…"   3 hours ago    Up 3 hours    8000/tcp                                                                                                                  web
bb4afa623c7a   rabbitmq:3.7-alpine    "docker-entrypoint.s…"   12 hours ago   Up 12 hours   4369/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 5671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp   rabbitmq
b1134268ed4b   ubuntu_nginx           "/docker-entrypoint.…"   12 hours ago   Up 12 hours   0.0.0.0:80->80/tcp, :::80->80/tcp                                                                                         nginx
ubuntu@ip-172-31-45-97:~$ docker exec -it 02 /bin/sh
~/web $ date
Sat Aug 13 12:32:16 KST 2022
~/web $ exit
ubuntu@ip-172-31-45-97:~$ docker exec -it b1 /bin/sh
/ # date
Sat Aug 13 12:32:38 KST 2022
/ # exit
ubuntu@ip-172-31-45-97:~$ docker exec -it 81 /bin/sh
~/web $ date
Sat Aug 13 12:34:07 KST 2022
~/web $ exit
ubuntu@ip-172-31-45-97:~$ docker exec -it 33 /bin/sh
~/web $ date
Sat Aug 13 12:34:18 KST 2022

timezone 세팅이 잘 되었음을 확인할 수 있습니다🙆🏻‍♀️

profile
꾸준히, 열심히, 그리고 잘하자

1개의 댓글

comment-user-thumbnail
2022년 9월 25일

좋은 글 감사합니다!

답글 달기