解决Docker容器内时区不一致问题
1、Dockerfile中创建时区文件
CentOS
FROM centos
ENV TZ=Asia/Shanghai
RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/${TZ} /etc/localtime \
&& echo "${TZ}" > /etc/timezone
Alpine
FROM alpine
ENV TZ=Asia/Shanghai
RUN apk add --no-cache tzdata \
&& echo "${TZ}" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
&& apk del tzdata \
# 可选,上面已指定no-cache
&& rm -rf /var/cache/apk/*
ubuntu
FROM ubuntu
ENV TZ=Asia/Shanghai
RUN echo "${TZ}" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
&& apt-get update \
&& apt-get install -y tzdata \
&& rm -rf /var/lib/apt/lists/*
2、运行容器时挂载主机时区
方式1
挂载本地 /etc/localtime
到容器内:
docker run -it -v /etc/localtime:/etc/localtime centos /bin/sh
方式2
挂载本地 /usr/share/zoneinfo/Asia/Shanghai
到容器内
docker run -it -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime centos /bin/sh
本文作者:gaozejie
版权声明:本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?