最近在使用docker容器的过程中发现容器的时间和当前时间有8个小时的时差,具体如何解决的做了如下备忘,希望能帮到忽略到该问题的小伙伴。
在Docker容器中快速修改时区通常可以通过以下2种方法实现:
1、在启动容器时设置环境变量(推荐方式):
当创建或重启容器时,可以通过 -e 参数来指定时区环境变量。例如,要将时区设置为中国的上海时区,可以这样运行容器:
# 运行容器增加 -e 参数
docker run -e TZ=Asia/Shanghai --name your_container_name -d your_image
这样,在容器启动时就会根据TZ环境变量的值来自动调整系统时区。
2、在容器内运行命令手动修改:
如果容器已经运行,并且需要在容器内部动态修改时区,可以先进入容器,然后执行相应的命令。对于大多数基于Unix的镜像(如Ubuntu、Debian),可以使用以下步骤:
先查找容器ID或名称
# 先查找容器ID或名称
docker ps
进入容器查看当前时间发现与当前时间有时差
# 进入容器,容器ID:1560e87cb43e
docker exec -it 1560e87cb43e /bin/bash
date
如下图所示:
设置时区:/etc/timezone
设置时区
echo "Asia/Shanghai" > /etc/timezone
如下图所示:
修改本地时间:/etc/localtime
# 修改本地时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如下图所示:
date命令重新查看时间显示正常
# date命令重新查看时间
date
如下图所示: