一、问题现象

    进入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







标签: none

评论已关闭