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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM