问题描述:

标题虽然仅与VirtualBox相关,其实主要还是因为docker的问题。

windows下使用docker要使用官方的DockerToolbox工具,会自动产生VirtualBox虚拟机。

而且此虚机所有配置都是不能改动的,因为没有意义,每次重启虚机都会重置改动(实测新建目录除外),

我猜想这是因为docker虚机的sata存储采用的是boot2docker.iso这个打包盘导致的。

既然不能改动,那么诸如时间、root密码、docker用户密码什么的都是不能改动的。

后两者其实问题不大,因为docker不会暴露宿主机,改不改没关系,但是时间困扰了我很久。


问题:

主机(本机)和虚机之间相差8个小时。

例如当前时间为9:30,那么docker的时间则是1:30。


解决方案:

8小时这么整齐的时间,一看就知道是UTC的时区设置问题。

google了一下,在虚机的设置-->系统里面,可以把UTC的设置取消掉:


充满期待地重启虚机,发现时间没有变,还是差8个小时。

root用户尝试重设时间:

date -s 9:30

可以发现时间确实是改了,但是过个3、5秒之后再date一下,发现时间又变回来了。

说明VirtualBox还有时间同步服务在运行,而且使用的是UTC时间。

翻阅资料,按照如下操作即可:

cmd窗口下:

c:

cd "C:\Program Files\Oracle\VirtualBox"

VBoxManage setextradata "default" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "1"

其中default是虚拟机的名字(如上图中标题栏的内容,注意大小写)。

执行完之后重启虚机,会发现时间已经与当前主机的时间一致了。


原理:

不懂,也不想去研究了,只要符合需求就好。


-------------------------------------------------

参考文献:

1. virtualbox中虚拟机时间不能与主机同步

2. VirtualBox 设置时间不同步 


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐