docker之容器日志输出与系统时间相差8小时解决办法
参考:https://blog.csdn.net/eumenides_/article/details/94719944
https://muguang.me/it/2658.html
使用docker部署容器时,输出日志时间会比系统正常时间少8小时
1,环境查看


2,创建容器查看日志
启动一个容器
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql3306 mysql:5.7
查看日志
docker logs mysql3306
可以看到日志比系统时候少8小时

登录容器查看时区和时间(于日志时间一致)
root@217fd4ef2dc7:/# date
Fri Aug 16 06:55:12 UTC 2019
root@217fd4ef2dc7:/# date -R
Fri, 16 Aug 2019 06:55:15 +0000
删除容器
docker kill mysql3306 docker rm mysql3306
新建一个容器使用链接让容器使用系统时区
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
-v链接系统时区
可以在宿主机查看这两个时区文件
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小时
docker logs mysql3306

登录容器查看
./docker_in.sh mysql3306
日期和时区设置是正常的
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时区,需要修改成系统时区
MySQL [(none)]> show variables like "log_timestamps";
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| log_timestamps | UTC |
+----------------+-------+
1 row in set (0.01 sec)
临时修改
set global log_timestamps="SYSTEM";
再次查看
MySQL [(none)]> show variables like "log_timestamps";
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| log_timestamps | SYSTEM |
+----------------+--------+
1 row in set (0.00 sec)
使用错误的密码登录一次产生日志再次查看日志时间对了

设置永久生效,修改MySQL配置文件my.cnf
[mysqld]
log_timestamps=SYSTEM
如果是使用docker-compose启动则需要修改配置文件添加以下内容
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才能生效
docker-compose down
docker-compose up -d
docker之容器日志输出与系统时间相差8小时解决办法的更多相关文章
- 解决weblogic与系统时间相差8小时的问题
解决weblogic与系统时间相差8小时的问题 在一般情况下weblogic与系统时间是很少会出现时间差的问题,但有可能在某一特定的情况下就会出现,如使用weblogic8版本时可能会出现时差问题: ...
- Manjaro 与 Windows 双系统时间相差8小时
Manjaro 与 Windows 双系统时间相差8小时 产生原因: Windows 将本地硬件时间作为设定时区(如 UTC+8)的区时,而 Linux 默认将其作为 UTC 时间. 解决方式: 让 ...
- win7和ubuntu双系统,win7时间晚8小时解决办法。
装了Win7和Ubuntu双系统后发现,使用Ubuntu后再登陆win7时系统显示时间不准确,比实际时间晚了8小时. 搜索后发现原来Linux和Windows的系统时间管理是不同的.Linux是以主板 ...
- CentOS系统时间与现在时间相差8小时解决方法
很多网友在安装完CentOS系统后发现时间与现在时间相差8小时,这是由于我们在安装系统的时选择的时区是上海,而CentOS默认bios时间是utc时间,所以时间相差了8小时.这个时候的bios的时间和 ...
- centos7系统日志时间与系统时间相差8小时
场景:当我们修改完系统时间的时区后,我们去查看我们的系统日志的时间发现时区还是在之前的系统时间时区. [root@vp-n ~]# ls -l /etc/localtime lrwxrwxrwx 1 ...
- Docker进入容器后使用ifconfig等命令“command not found”解决办法
当进入一个容器后,使用ifconfig.ip addr等命令时,出现如下“command not found”: 解决办法: yum update yum -y install n ...
- Java获取时间与系统时间相差8小时终极解决方案
一.在取日期以前设置一下时区 TimeZone tz = TimeZone.getTimeZone(“ETC/GMT-8″);TimeZone.setDefault(tz); 此种方法适用于单次快速获 ...
- 苹果与Windows双系统时间不同步的解决办法
步骤:打开C盘>Windows>System32,找到cmd.exe,右键以管理员的身份运行. Reg add HKLM\SYSTEM\CurrentControlSet\Control\ ...
- 【转】PHP date("Y-m-d H:i:s");获取当前时间 差8小时解决办法
原因: 网络资 ...
随机推荐
- 转发大神nginx配置详解
序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...
- C# mysql 处理 事务 回滚 提交
MySqlConnection myCon; void iniMysql() { //连接数据库 myCon = new MySqlConnection("server=127.0.0.1; ...
- PureComponent下setstate不重新渲染
https://blog.csdn.net/zhangheli123456/article/details/85053210 可以将 PureComponent 换成React.Component ...
- Ubuntu下彻底卸载默认安装的mysql,自己手动下载安装MYSQL
彻底卸载: sudo apt-get autoremove --purge mysql-server-5.7 sudo apt-get remove mysql-common sudo rm -rf ...
- Linux 文件基本属性: chown修改所属组 和 chmod修改文件属性命令
[root@www /]# ls -l total 64 dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin -rwxrwxr-x 4 root root 4096 ...
- Ubuntu16.4 内核降级
.cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份sources.list .vi /etc/apt/sources.list #在sour ...
- git的实际工作经验总结
分支工作的一个较佳的实践, 即git工作的最佳实践 从最初的svn到后来的git,上来给我的感觉就是git更方便, 可以在本地进行版本的提交,回退. 后来对hash有所了解, 知道了git的每个版本其 ...
- php grpc请求go,报Yac::get(): Unserialization failed
大概说下yac是个啥东西..看鸟哥的博客 Yac 是为PHP实现的一个基于共享内存, 无锁的内容Cache Yac的两个应用场景:1.让PHP进程之间共享一些简单的数据2.高效地缓存一些页面结果 假设 ...
- 贪心算法训练(九)——Best Cow Line(字典序最小问题)
原题链接:Best Cow Line 1. 问题描述 2. 输入 6 A C D B C B 3. 输出 ABCBCD 4.思路分析 不断地取原字符串 S 中开头和末尾比较小的字符串放到 T 的末尾 ...
- http与https区别,get与post请求区别
引用:http://blog.csdn.net/m0_38099607/article/details/72864684 HTTP与HTTPS的区别 超文本传输协议HTTP协议被用于在Web浏览器和网 ...