一、查看时间

在容器内查看时间,你可以使用以下命令:

date

这个命令会显示容器内的当前日期和时间。

如果你使用的是 Docker,可以通过以下命令进入容器并查看时间:

docker exec -it <container_id> date

其中,<container_id> 是你要查看时间的容器的 ID 或名称。

如果你使用的是 Kubernetes,可以使用以下命令:

kubectl exec -it <pod_name> -- date

其中,<pod_name> 是你要查看时间的 Pod 的名称。

这些命令会输出容器内的当前时间,帮助你确认容器内的时间设置是否正确。

若时间不正确,可继续往下看,以修改正确的docker容器时间。

二、修改容器时间

方法一:挂载宿主机的时区文件(推荐)

docker指令用法:

docker run -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro your_image

docker-compose:

    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro

方法二:在 Dockerfile 中设置时区

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

方法三:直接修改容器中的时间(容器已部署)

进入容器,并执行以下命令(以东八区时间为例):

ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" > /etc/timezone

若出现权限不足:

可使用root身份重新进入容器:

docker exec -it --user root <container_id> /bin/sh

然后再次执行:

ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" > /etc/timezone

⚠️ 注意

  • 这种方式只对当前容器生效,容器重构后失效(除非你用 docker commit 保存为新镜像)。
  • 如果你希望永久生效,建议:

    • 修改 Dockerfile 后重新构建镜像,或
    • 在启动容器时挂载宿主机的时区文件(见上一回复)。

🔍 验证是否生效

进入容器后再次运行:

date

如果看到 CSTUTC+8 时间,就说明时区设置成功了。

最后修改:2025 年 11 月 01 日
如果觉得我的文章对你有用,请随意赞赏