Data Engineering(Pipeline, Hadoop...)/Docker

Docker Container 날짜(date) 한국시간(KST)으로 변경하기

dtstory 2022. 10. 20. 19:00

<Host server 한국시간(KST) 설정>

date

간단하게 date 명령을 통해, 현재 날짜를 확인해보면, 아래와 같이 UTC 기준의 날짜와 시간으로 보이는 것을 확인할 수 있다.

이 시간대를 KST로 바꾸는 것은 간단하다.

 

# systemd 설치 및 Seoul 시간 리스트 확인

apt install systemd
timedatectl list-timezones | grep Seoul


# 표준시를 Asia/Seoul 로 셋팅

timedatectl set-timezone Asia/Seoul

# date 확인

host 서버의 시간을 바꾸는 것은 위와 같이 하면 간단하게 변경이 가능하다. 그러나, Docker Image로 올라간 container 내에서는 위와 같은 방법으로 진행할 경우, 아래와 같은 에러를 발생시킨다.

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to create bus connection: Host is down

 

따라서 도커 컨테이너의 경우, 아래의 방법으로 KST로 변경하도록 하자.


<Docker Container 내 한국시간(KST) 설정>

 

# docker container 접속

docker exec -u 0 -it [컨테이너명] /bin/bash
docker exec -u 0 -it my_container /bin/bash​

(-u 0 의 옵션 사용은 root 계정으로 접속해, 설정시 permission을 받기 위함)

 

# 타임 존을 Asia/Seoul로 설정

ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
echo Asia/Seoul > /etc/timezone

# date 확인

date

원하는 시간대인 KST로 변경된 것을 확인할 수 있다.

 

이 방법 외에도, docker run 설정 시, TIME ZONE 자체를 설정하고 시작하는 방법도 있지만, 기존에 올려져 있는 컨테이너의 시간대 변경을 위해 위와 같은 방법을 사용해 보았다.

 

 

728x90