我在这个链接的帮助下创建了一个 Oracle Database Docker Image
SYSTIMESTAMP
显示 UTC 时间而不是我本地机器的时间。
kaushik:~ knayak$ date
Fri Jun 8 17:46:35 IST 2018
select current_timestamp,systimestamp from dual;
CURRENT_TIMESTAMP SYSTIMESTAMP
------------------------------------------- ----------------------------------
08-06-18 05:47:51.742216000 PM ASIA/KOLKATA 08-06-18 12:17:51.742211000 PM GMT
如何更改容器的时间以匹配我的时区?
问题不在你的数据库,这是docker的问题。
Docker 在主机和虚拟机(“容器”……)之间的时间同步方面存在臭名昭著的问题。
最简单的解决方案是使用管理员权限启动 docker 容器(
--privileged
标记为docker run
),然后使用容器内的时间同步工具来修复其时间(ntpdate -s your.country.clock
)。用谷歌搜索并尝试了几种选择,最后,对我有用的是:-
以 root 用户身份登录容器:
检查
/etc/localtime
指向 UTC 的文件删除该文件并创建一个新的软链接以指向与您当地时区对应的文件。
退出 shell 并重新启动容器。
验证查询的输出,它看起来不错。
命令或
localtime
文件可能因 Docker 模拟的操作系统而异。在我的例子中,它是 x86_64 GNU/Linux。