我在一个正在运行的带有节点的 docker 容器中,由于某种原因,主机的时区/时间与 docker 容器内部的时间从不对齐:
root@foobar:~# node -e "console.log(new Date())"
>> Tue May 17 2016 15:12:43 GMT+0200 (CEST)
root@foobar:~# docker exec 9179105c0ff9 node -e "console.log(new Date())"
>> Tue May 17 2016 13:13:01 GMT+0000 (Europe)
root@foobar:~# cat /etc/timezone
>> Europe/Vienna
root@foobar:~# docker exec 9179105c0ff9 cat /etc/timezone
>> Europe/Vienna
所以我已经在我的 docker-start shell 中做的是脚本如下:
docker run \
...
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-e "TZ=Europe/Vienna" \
...
...但是,正如您在第一个代码块中看到的那样,时间仍然是错误的!对此有什么想法吗?我错过了什么?
(仅供参考:我正在运行一个通过mupx部署的流星应用程序)
更新:
date
在宿主机上和容器内运行后,再次有 2hrs 的差异。所以由于某种原因,docker容器只是没有“应用”我的时区,而且问题似乎与 JS/node 无关,因为date
它只是一个简单的 unix 系统 cmd ......我在这里错过了什么?!