docker容器时间
注意:net core 在debug模式下,无法设置时区(不生效,暂未找到原因)。但是release模式下,时区会生效!
场景 | 问题 | 分析 | 解决 |
---|---|---|---|
发现容器打印的日志时间有问题 | 容器时间与宿主机时间不一致 | 如果在启动Docker容器的过程中没有单独配置localtime,很可能造成Docker容器时间与主机时间不一致的情况,比如UTC和CST相差8小时,换句话来说就是容器时间与北京时间相差8个小时。 | 推荐在dockefile中设置 |
1. 查看主机时间
> [root@localhost ~]# date
> 2022年 12月 03日 星期六 22:33:18 CST
1. 查看容器时间
>[root@localhost ~]# docker exec -it 2db33ec8417b /bin/bash
>root@2db33ec8417b:/app# date
>Sat Dec 3 22:33:18 CST 2022
Dockerfile文件最下方加入:
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
例如:
........
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
ENTRYPOINT ......