Docker : コンテナのタイムゾーンを変更する
Docker イメージを使ったときのコンテナ内の時刻を JST に変更する。
Alpine Linux
Dockerfile に下記を追加する。
RUN apk add --update --no-cache tzdata && \ cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \ echo "Asia/Tokyo" > /etc/timezone && \ apk del tzdata
確認方法
docker ps
コマンドで起動中のコンテナの一覧を表示する。
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 527eafb9a8b4 docker-efk_kibana "/usr/local/bin/dumb…" 14 seconds ago Up 12 seconds 5601/tcp kibana ef65f95e1c80 docker-efk_fluentd "tini -- /bin/entryp…" 14 seconds ago Up 12 seconds 5140/tcp, 24224/tcp fluentd a0baa2d85f8a docker-efk_elasticsearch "/usr/local/bin/dock…" 14 seconds ago Up 12 seconds 9200/tcp, 9300/tcp elasticsearch
docker exec
コマンドでコンテナにログインする。
# docker exec -it ef65f95e1c80 /bin/ash / # date Wed Feb 26 19:36:33 JST 2020
CentOS
Dockerfile に下記を追加する。
ENV TZ='Asia/Tokyo'
確認方法
docker exec
コマンドでコンテナにログインする。
# docker exec -it 527eafb9a8b4 /bin/bash bash-4.2$ date Wed Feb 26 19:43:33 JST 2020
参考サイト
Alpine Linux で timezone を変更する(最新版?) - Qiita