在 Java 开发中使用 Docker 镜像时,由于 alpine 提供的 linux 环境的镜像特别的小,只有 5M 左右,集成 openjdk 后的大小也在 100M 以内,因此应用非常广泛,在 Docker Hub 有大量基于 alpine 的镜像。
但是所有基于 alpine 的镜像使用的都是默认时区,因此在使用时,要对时区进行修改。
时区地图
查看日期
首先可以进入 alpine 的镜像(默认 /bin/sh )查看日期:
[root@k8s-master openjdk8]# docker run -i -t --rm alpine:3.9
/ # date -R
Thu, 14 Feb 2019 05:59:48 +0000
修改日期
先在容器按照上述参考文档,修改查看是否有效。
在前面进入的容器中,按顺序执行下面的命令:
# 安装时区设置
apk add tzdata
# 复制上海时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 指定为上海时区
echo "Asia/Shanghai" > /etc/timezone
# 验证
date -R
# 输出,和当前时间对比
Thu, 14 Feb 2019 14:01:02 +0800
# 删除其他时区配置,节省空间
apk del tzdata
通过实验发现该方法可行,下面针对镜像(而不是镜像实例)进行修改。