After running a Ubuntu docker container, I found that the default time zone is UTC. I want to change it to my local timezone.
This is how to change the timezone when we are building the docker container:
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends tzdata \
&& rm -rf /var/lib/apt/lists/*
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& dpkg-reconfigure --frontend noninteractive tzdata
Since we can enter input when building docker images, by setting
DEBIAN_FRONTEND
to noninteractive
, we make sure apt-get
will install
tzdata package in a non-interactive way.
Package tzdata
will install a lot of timezone files under
/usr/share/zoneinfo
directory. We then create a symlink to use
Asia/Shanghai
as the new timezone:
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Finally, we use dpkg-reconfigure
to configure tzdata to use the new timezone:
dpkg-reconfigure --frontend noninteractive tzdata
The option --frontend noninteractive
avoids the interactive prompt to choose
area and city.