最近发现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所在容器是b703ec7df997
docker 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

标签: none

添加新评论