docker内的时间与主机时间不一致的问题
一、问题现象
进入docker后,在docker内执行date命令,其结果与在Host的结果不一致.
docker内的时间: Wed Sep 3 01:11:14 UTC 2025
Host的时间: Wed Sep 3 09:13:36 AM CST 2025
二、问题原因
docker内的/etc/目录下没有配置与host一致的时区配置文件.
三、解决方法: 临时修改 (1)
拷贝当地对应的时区配置文件,直接在docker内操作.
cp /usr/share/zoneinfo/Asia/Shanghai /etc/
mv /etc/Shanghai /etc/localtime
此时再次执行date:
Wed Sep 3 09:17:55 CST 2025
时间就对了,但是每次退出docker容器后,再次进入docker时,又得重复这样的操作.
四、解决方法: 不用手动修改(2)
就是启动镜像时挂载host端的时区信息:-v /etc/localtime:/etc/localtime:ro 写入挂载脚本,即将host系统里的时区信息文件/etc/localtime以只读的方式挂载至docker系统里同样的路径,例如
docker run -it --rm --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v "$MOUNT_HOST_DIR":$MOUNT_DOCKER_DIR -v /etc/localtime:/etc/localtime:ro --name $MOUNT_DOCKER_NAME $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG_NAME /bin/bash