参考: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小时解决办法的更多相关文章

  1. 解决weblogic与系统时间相差8小时的问题

    解决weblogic与系统时间相差8小时的问题 在一般情况下weblogic与系统时间是很少会出现时间差的问题,但有可能在某一特定的情况下就会出现,如使用weblogic8版本时可能会出现时差问题: ...

  2. Manjaro 与 Windows 双系统时间相差8小时

    Manjaro 与 Windows 双系统时间相差8小时 产生原因: Windows 将本地硬件时间作为设定时区(如 UTC+8)的区时,而 Linux 默认将其作为 UTC 时间. 解决方式: 让 ...

  3. win7和ubuntu双系统,win7时间晚8小时解决办法。

    装了Win7和Ubuntu双系统后发现,使用Ubuntu后再登陆win7时系统显示时间不准确,比实际时间晚了8小时. 搜索后发现原来Linux和Windows的系统时间管理是不同的.Linux是以主板 ...

  4. CentOS系统时间与现在时间相差8小时解决方法

    很多网友在安装完CentOS系统后发现时间与现在时间相差8小时,这是由于我们在安装系统的时选择的时区是上海,而CentOS默认bios时间是utc时间,所以时间相差了8小时.这个时候的bios的时间和 ...

  5. centos7系统日志时间与系统时间相差8小时

    场景:当我们修改完系统时间的时区后,我们去查看我们的系统日志的时间发现时区还是在之前的系统时间时区. [root@vp-n ~]# ls -l /etc/localtime lrwxrwxrwx 1 ...

  6. Docker进入容器后使用ifconfig等命令“command not found”解决办法

      当进入一个容器后,使用ifconfig.ip addr等命令时,出现如下“command not found”:       解决办法:   yum update yum -y install n ...

  7. Java获取时间与系统时间相差8小时终极解决方案

    一.在取日期以前设置一下时区 TimeZone tz = TimeZone.getTimeZone(“ETC/GMT-8″);TimeZone.setDefault(tz); 此种方法适用于单次快速获 ...

  8. 苹果与Windows双系统时间不同步的解决办法

    步骤:打开C盘>Windows>System32,找到cmd.exe,右键以管理员的身份运行. Reg add HKLM\SYSTEM\CurrentControlSet\Control\ ...

  9. 【转】PHP date("Y-m-d H:i:s");获取当前时间 差8小时解决办法

    原因:                                                                                              网络资 ...

随机推荐

  1. OFDM为什么要在频域内插后做fftshift

     目的:“便于”演算和分析  方法:转换成负频率,得到零中频. 注意:Matlab下标从1开始,数字信号处理下标从0开始,因此以下作图做了转换.

  2. 批量把pod实例调成0

    #!/bin/bash namespace=`kubectl get ns|grep '^te-'|grep -v datamgr|awk '{print $1}'` #--------------- ...

  3. IDEA快速实现接口快捷方式

    IDEA快速实现接口快捷方式 ALT +INSERT

  4. Linux 数据库相关内核参数

    cat >>/etc/sysctl.conf  <<EOOF    # add by digoal.zhou    fs.aio-max-nr = 1048576    fs. ...

  5. 性能测试解读:Kyligence vs Spark SQL

    全球各种大数据技术涌现的今天,为了充分利用大量数据获得竞争优势,企业需要高性能的数据分析平台,可靠并及时地提供对海量数据的分析见解.对于数据驱动型企业,在海量数据上交互式分析的能力是非常重要的能力之一 ...

  6. Linux中三种SCSI target的介绍之SCST

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/scaleqiao/article/deta ...

  7. Processing玩抠图

    突然兴起想玩一下抠图,试着用自带的Example\video来改,花了一个中午做了个小样: 分别是白色为底与黑色为底的效果,代码如下: import processing.video.*; int n ...

  8. esp8266 + dht11 + 两路继电器 实现pc远程控制开关机温度监控.并配置zabbix监控

    事因:翻了翻自己之前的硬件小箱子,几年前买的一些小东西,想用用起来. 正好我有些数据放在机器上,有时候需要机器启动,我使用完成后在断开. 其实网络唤醒也能做到,但是机器一直给电也不好,在说家里有小孩A ...

  9. CF1203F2 Complete the Projects (hard version)(结论+背包+贪心)

    题目 做法 对于加分的直接贪心 而掉分的用排序后的背包动规 假设有两个物品\((a_1,b_1)(a_2,b_2)\) 选第一个物品后无法选择第二个物品,假设开始值为\(r\):\(r>a_1, ...

  10. 比较实用的Java工具类

    一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流.socket.或者selector且不抛出异常,通常放在finally块 toString: ...