Skip to main content
  1. Posts/

Set Timezone inside Docker Container

··173 words·1 min·
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.



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