일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- minikube
- Kubernetes
- 정보처리기사 실기 기출문제
- Java
- Elasticsearch
- AWS EKS
- AI
- Pinpoint
- CKA
- mysql 튜닝
- 기록으로 실력을 쌓자
- aws
- kotlin coroutine
- kotlin
- PETERICA
- 공부
- Spring
- CloudWatch
- Linux
- 정보처리기사실기 기출문제
- MySQL
- 오블완
- APM
- IntelliJ
- 정보처리기사 실기
- CKA 기출문제
- kotlin querydsl
- 코틀린 코루틴의 정석
- kotlin spring
- 티스토리챌린지
- Today
- Total
피터의 개발이야기
[Docker] Docker 컨테이너에서 한국 시간(KST)을 적용하는 방법 본문
ㅁ 들어가며
Docker 컨테이너에서 한국 시간(KST)을 적용하는 아래의 방법을 정리하였다.
ㅇ 간단한 설정: -e TZ=Asia/Seoul 옵션 사용
ㅇ 여러 컨테이너 관리: docker-compose.yml 환경변수 추가
ㅇ 이미지 빌드 시 적용: Dockerfile에 타임존 설정
ㅇ 컨테이너 내부 직접 설정
ㅁ 컨테이너 실행 시 환경변수 설정
컨테이너를 실행할 때 -e
옵션을 사용하여 TZ
(Timezone) 환경변수를 설정한다.
docker run -d -e TZ=Asia/Seoul [이미지 이름]
ㅇ -e 옵션을 사용하여 TZ(Timezone) 환경변수를 설정
ㅇ 컨테이너 실행 시 한국 시간으로 설정된다.
docker run -e TZ=Asia/Seoul --rm nginx date
ㅇ 컨테이너 내부에서 date 명령을 실행하면 KST로 출력된다.
ㅁ docker-compose.yml 파일에서 설정
version: '3'
services:
app:
image: nginx
environment:
- TZ=Asia/Seoul
ㅇ environment로 TZ
값을 Asia/Seoul
로 설정
ㅁ Dockerfile에 설정
ubuntu인 경우
docker run -e TZ=Asia/Seoul --rm ubuntu dat
ㅇ ubuntu의 경우 환경변수가 적용되지 않는다.
ㅇ 이런 경우 Dockerfile에 타임존 관련 설정을 추가해야 한다.
FROM ubuntu:latest
RUN apt-get update && apt-get install -y tzdata
RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime && echo "Asia/Seoul" > /etc/timezone
ㅇ Dockerfile에 이미지 빌드 시 타임존 설정을 미리 설정한다.
$ cat Dockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y tzdata
RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime && echo "Asia/Seoul" > /etc/timezone
$ docker build -t time-test .
[+] Building 0.0s (7/7) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 238B 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:latest 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/3] FROM docker.io/library/ubuntu:latest 0.0s
=> CACHED [2/3] RUN apt-get update && apt-get install -y tzdata 0.0s
=> CACHED [3/3] RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime && echo "Asia/Seoul" > /etc/timezone 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:2646bf9b98500b8f8b0d755db83049225d906c083c821cfd8b603544cb375a9c 0.0s
=> => naming to docker.io/library/time-test 0.0s
What's next:
View a summary of image vulnerabilities and recommendations → docker scout quickview
$ docker run --rm time-test date
Fri Dec 13 22:12:13 KST 2024
Alpine인 경우
FROM alpine:latest
ENV TZ=Asia/Seoul
RUN apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone
ㅇ Alpine에 맞는 타임존 설정을 Dockerfile에 추가한다.
ㅁ 심볼릭 링크를 사용한 수동 설정
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
ㅇ 컨테이너 내부에서 /etc/localtime 파일을 한국 시간대로 연결한다.
ㅇ 컨테이너를 재시작하면 설정이 초기화된다.
ㅁ 마무리
가장 간단한 설정은 -e TZ=Asia/Seoul
옵션 사용을 사용하는 방법이다. 여러 컨테이너 관리을 관리하는 경우 docker-compose.yml
환경변수 추가하면 된다. 환경변수가 적용되지 않는다면, 이미지 빌드 시 적용 시 Dockerfile에 타임존 설정 추가할 수 있다. 각 방법은 상황에 따라 적합하게 선택하여, 지속적인 타임존을 관리할 수 있다.
ㅁ 함께 보면 좋은 사이트
ㅇ https://wiki.alpinelinux.org/wiki/Setting_the_timezone
'DevOps > Docker' 카테고리의 다른 글
[Docker] Distroless 이미지란? (0) | 2025.01.04 |
---|---|
[Docker] 멀티 플랫폼, --platform 옵션 사용법 (1) | 2025.01.03 |
[Docker] Multi-stage 빌드로 Go 애플리케이션 최적화하기 (0) | 2024.12.03 |
[Docker] Rocky Linux9 설치 및 FFMPEG 설치방법 (0) | 2024.12.02 |
[Docker] Docker와 pm2를 함께 사용하는 것이 불리한 이유 (0) | 2024.10.27 |