Skip to main content
  1. Posts/

Set Timezone inside Docker Container

··173 words·1 min·
Linux Docker Ubuntu
Table of Contents

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.

References
#

Related

Setting Up Locale in Linux
··715 words·4 mins
Linux CentOS Ubuntu Locale Docker
Fix Nvidia Apt Repository Public Key Error
·240 words·2 mins
Linux Ubuntu
Switch Command with update-alternatives on Ubuntu
··457 words·3 mins
Linux Ubuntu GCC