docker之容器日誌輸出與系統時間相差8小時解決辦法

  參考:https://blog.csdn.net/eumenides_/article/details/94719944html

       https://muguang.me/it/2658.htmlpython

  使用docker部署容器時,輸出日誌時間會比系統正常時間少8小時mysql

  1,環境查看

  

  2,建立容器查看日誌

  啓動一個容器sql

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql3306 mysql:5.7

   查看日誌docker

docker logs mysql3306

   能夠看到日誌比系統時候少8小時ide

  登陸容器查看時區和時間(於日誌時間一致)spa

root@217fd4ef2dc7:/# date
Fri Aug 16 06:55:12 UTC 2019
root@217fd4ef2dc7:/# date -R
Fri, 16 Aug 2019 06:55:15 +0000

   刪除容器.net

docker kill mysql3306

docker rm mysql3306

   新建一個容器使用連接讓容器使用系統時區3d

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
相關文章
相關標籤/搜索