docker之容器日志输出与系统时间相差8小时解决办法
参考:https://blog.csdn.net/eumenides_/article/details/94719944
https://muguang.me/it/2658.html
使用docker部署容器时,输出日志时间会比系统正常时间少8小时
1,环境查看
2,创建容器查看日志
启动一个容器
1 | docker run - d - p 3306 : 3306 - e MYSQL_ROOT_PASSWORD = 123456 - - name mysql3306 mysql: 5.7 |
查看日志
1 | docker logs mysql3306 |
可以看到日志比系统时候少8小时
登录容器查看时区和时间(于日志时间一致)
1 2 3 4 | root@ 217fd4ef2dc7 : / # date Fri Aug 16 06 : 55 : 12 UTC 2019 root@ 217fd4ef2dc7 : / # date -R Fri, 16 Aug 2019 06 : 55 : 15 + 0000 |
删除容器
1 2 3 | docker kill mysql3306 docker rm mysql3306 |
新建一个容器使用链接让容器使用系统时区
1 | docker run - d - p 3306 : 3306 - e MYSQL_ROOT_PASSWORD = 123456 - v / etc / timezone: / etc / timezone:ro - v / etc / localtime: / etc / localtime:ro - - name mysql3306 mysql: 5.7 |
PS:2023-12-25测试好像只保留以下链接即可
1 | -v /etc/localtime:/etc/localtime:ro |
-v链接系统时区
可以在宿主机查看这两个时区文件
1 2 3 4 | root@test - docker01: / nas / scripts # ll /etc/localtime lrwxrwxrwx 1 root root 33 7 月 7 06 : 05 / etc / localtime - > / usr / share / zoneinfo / Asia / Shanghai root@test - docker01: / nas / scripts # cat /etc/timezone Asia / Shanghai |
查看日志,时间还是相差8小时
1 | docker logs mysql3306 |
登录容器查看
1 | . / docker_in.sh mysql3306 |
日期和时区设置是正常的
1 2 3 4 | root@f6a3ea6e7b42: / # date Fri Aug 16 15 : 01 : 59 CST 2019 root@f6a3ea6e7b42: / # date -R Fri, 16 Aug 2019 15 : 02 : 01 + 0800 |
MySQL使用记录日志还有一个设置需要修改
登录MySQL查看,日志记录使用UTC时区,需要修改成系统时区
1 2 3 4 5 6 7 | MySQL [(none)]> show variables like "log_timestamps" ; + - - - - - - - - - - - - - - - - + - - - - - - - + | Variable_name | Value | + - - - - - - - - - - - - - - - - + - - - - - - - + | log_timestamps | UTC | + - - - - - - - - - - - - - - - - + - - - - - - - + 1 row in set ( 0.01 sec) |
临时修改
1 | set global log_timestamps = "SYSTEM" ; |
再次查看
1 2 3 4 5 6 7 | MySQL [(none)]> show variables like "log_timestamps" ; + - - - - - - - - - - - - - - - - + - - - - - - - - + | Variable_name | Value | + - - - - - - - - - - - - - - - - + - - - - - - - - + | log_timestamps | SYSTEM | + - - - - - - - - - - - - - - - - + - - - - - - - - + 1 row in set ( 0.00 sec) |
使用错误的密码登录一次产生日志再次查看日志时间对了
设置永久生效,修改MySQL配置文件my.cnf
1 2 | [mysqld] log_timestamps = SYSTEM |
如果是使用docker-compose启动则需要修改配置文件添加以下内容
1 2 3 4 5 | volumes: - . / mysql / conf: / etc / mysql / conf.d - . / mysql / data: / var / lib / mysql - / etc / localtime: / etc / localtime:ro - / etc / timezone: / etc / timezone:ro |
同时修改mysql配置文件
PS:如果docker-compose已经启动则添加配置重启无效需要删除容器再重新up才能生效
1 2 | docker - compose down docker - compose up - d |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2018-08-16 zabbix监控主机CPU使用率