Docker内时区查询和修改方法
利用【docker exec -it 容器ID /bin/bash】命令进入Docker容器内,
执行【date】命令查看Docker容器的时间发现与宿主机有误差时,修改时间和时区。
方法一:在【宿主机】中执行命令,【docker cp /etc/localtime 容器ID:/etc/localtime】,重启Docker容器。
方法二:在【宿主机】中执行命令,【docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID:/etc/localtime】,重启Docker容器。
方法三:在【容器】中执行命令,【ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime】,重启Docker容器。
创建容器时,直接用宿主机器上的时区默认覆盖容器内的时区配置文件,也就是跟宿主机器同样的时区配置
docker run id -v /etc/localtime:/etc/localtime:ro 镜像名
但是发现通过java中new Date()获取到的仍然是容器默认的时区,因为java是通过获取timezone来设置时间的,所以容器也需要设置时区。
/* 这里配置的环境变量 Asia/Shanghai就是我所需要的时区 */
# docker run -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro 镜像名
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性