zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    深入理解虚拟机、容器和Hyper技术
    Hyper:基于Hypervisor的容器化解决方案
    iSCSI 在Linux下的模拟实验
    C-RAN
    spring mvc
    DUBBO
    ajax跨域请求 小栗子 jsonP
    freemarker 页面静态化 简单小栗子
    ajax上传图片监听
    代码优化 粘贴
  • 原文地址:https://www.cnblogs.com/minseo/p/11364003.html
Copyright © 2011-2022 走看看