尴尬问题-Docker时区不正常
最近发现docker内的Ubuntu(跑酷Q)时间不太正常,导致腾讯AI开放平台的API都调用失败。
起初尝试在系统内部纠正,先安装ntpdate
安装之前例行刷新一下....
apt-get update &&apt update
apt-get install ntpdate
ntpdate asia.pool.ntp.org && hwclock --systohc
然而返回了
7 Apr 13:40:56 ntpdate[3790]: Can't adjust the time of day: Operation not permitted
果然,docker相当于一个“虚拟机”(伪,这里只是形容层级关系),虚拟机内是不可能有权限修改虚拟机的配置的。
思考一下从更根源的地方考虑------修改docker内时区
根据某位大佬的省事方法,直接把真机的正确文件复制/映射过去docker cp /etc/localtime 容器ID:/etc/localtime #将本地时间拷贝到docker内部对于我,我的酷Q所在容器是b703ec7df997docker cp /etc/localtime b703ec7df997:/etc/localtime #将本地时间拷贝到docker内部执行后,保险起见我又关了容器重新执行了一次,接下来重启容器。
结果:失败了
于是...我找到了:sleele写的一篇博客:解决docker容器时区与宿主机时区不一致问题的办法
只需要在创建容器时加一句磁盘映射就完了
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro
PS:
也可以通过
tzselect
修改时区,但是我发现我的会报错
/usr/bin/tzselect: 行 494: /usr/share/zoneinfo/Asia/Shanghai: 符号连接的层数过多
/usr/bin/tzselect: time zone files are not set up correctly