728x90
도커 컨테이너와 도커 컴포즈에서 타임존을 설정하는 방법
도커 컨테이너에서 타임존 설정
1. Dockerfile에서 타임존 설정
- Dockerfile을 작성할 때 타임존을 설정할 수 있습니다.
예를 들어 Asia/Seoul로 설정하는 방법은 다음과 같습니다.
vim Dockerfile
FROM ubuntu:22.04
# Set the environment variable for timezone
ENV TZ=Asia/Seoul
# Install tzdata package and set timezone
RUN apt-get update && apt-get install -y tzdata && \
ln -fs /usr/share/zoneinfo/$TZ /etc/localtime && \
dpkg-reconfigure --frontend noninteractive tzdata
# Your other Dockerfile commands go here
이렇게 설정한 Dockerfile로 이미지를 빌드하고 컨테이너를 생성하면 해당 컨테이너는 설정한 타임존을 사용하게 됩니다.
2. 컨테이너 실행 시 타임존 설정
- 컨테이너를 실행할 때 환경 변수를 사용하여 타임존을 설정할 수 있습니다.
예를 들어 ubuntu 이미지를 사용하여 타임존을 Asia/Seoul로 설정하는 방법은 다음과 같습니다.
docker run \
-e TZ=Asia/Seoul \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro ubuntu:22.04
이 명령어는 컨테이너의 타임존을 Asia/Seoul로 설정하고 호스트 시스템의 타임존 설정을 컨테이너에 반영합니다.
도커 컴포즈에서 타임존 설정
Docker Compose를 사용하여 타임존을 설정할 때는 docker-compose.yml 파일에서 환경 변수를 설정하거나 볼륨을 마운트할 수 있습니다.
1. docker-compose.yml 파일에서 환경 변수 설정
docker-compose.yml 파일을 작성할 때 환경 변수를 설정하여 타임존을 지정할 수 있습니다.
vim docker-compose.yml
version: '3.8'
services:
my_service:
image: ubuntu:22.04
environment:
- TZ=Asia/Seoul
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
command: [ "sleep", "infinity" ] # Replace with your actual command
이 설정은 TZ 환경 변수를 사용하여 컨테이너의 타임존을 Asia/Seoul로 설정하고 호스트 시스템의 타임존 설정을 컨테이너에 반영합니다.
2. Dockerfile과 연동하여 설정
docker-compose.yml 파일과 Dockerfile을 함께 사용하여 타임존을 설정할 수도 있습니다. Dockerfile에서 타임존을 설정하고 docker-compose.yml 파일에서 해당 이미지를 사용하도록 구성합니다.
vim Dockerfile
FROM ubuntu:22.04
# Set the environment variable for timezone
ENV TZ=Asia/Seoul
# Install tzdata package and set timezone
RUN apt-get update && apt-get install -y tzdata && \
ln -fs /usr/share/zoneinfo/$TZ /etc/localtime && \
dpkg-reconfigure --frontend noninteractive tzdata
# Your other Dockerfile commands go here
vim docker-compose.yml
version: '3.8'
services:
my_service:
build: .
environment:
- TZ=Asia/Seoul
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
command: [ "sleep", "infinity" ] # Replace with your actual command
이러한 방법들을 통해 도커 컨테이너와 도커 컴포즈에서 타임존을 설정할 수 있습니다.
728x90
'리눅스' 카테고리의 다른 글
[draft] Docker Compose를 사용하여 Blue-Green 배포를 구현하는 방법 (0) | 2024.07.06 |
---|---|
[draft] 우분투에 JDK을 설치하고 환경 변수를 설정하는 방법 (0) | 2024.07.06 |
[draft] Debian 계열의 코드이름 체계 (0) | 2024.07.04 |
[draft] Cloudflare 프록시 환경에서 Apache의 액세스 로그에 클라이언트의 실제 IP 주소를 남기는 방법 (0) | 2024.07.03 |
[draft] CentOS 7에서 Grafana Loki를 설치하는 방법 (0) | 2024.07.03 |