通过Docker修改运行中的MySQL容器的时区

2024-01-22  本文已影响0人  囝囝123

当前情况

宿主机的时区要是CST,即东八区。
MySQL所在的容器是UTC
在MySQL内执行select now()显示的时间也是UTC。

  1. 通过docker cp修改容器时间
    如下即可将容器的时间改为和宿主机同样的时区
sudo docker cp /etc/localtime 231458904a77:/etc/localtime

这个时候如果报错了

[root@VM-0-8-centos /]# sudo docker cp /etc/localtime mysql:/etc/localtime
Successfully copied 1.54kB to mysql:/usr/share/zoneinfo/UCT
Error response from daemon: invalid symlink "/usr/share/zoneinfo/UCT" -> "../usr/share/zoneinfo/Asia/Shanghai"

即使重启 容器 时间也 没有改变
更改命令

docker cp /usr/share/zoneinfo/Asia/Shanghai 70ec41893d66:/etc/localtime

此时MySQL所在的容器时间如下,已经是东八区

➜  ~ ✗ sudo docker exec -it 231458904a77 /bin/bash         
root@231458904a77:/# date
Thu Jan 28 10:56:42 CST 2021

但是,MySQL服务的时间还不是东八区

  1. 重启MySQL容器
sudo docker restart 231458904a77

执行完命令之后查看,则可以发现宿主机、MySQL所在容器、MySQL服务三个时区都是一致的了

也可以在 创建容器的时候 增加参数

-e TZ=Asia/Shanghai 
上一篇 下一篇

猜你喜欢

热点阅读