Docker容器动态修改时间问题

[b]              我们目前是金融行业,公司的测试人员需要动态修改容器的系统时间,目前我们在一个物理主机上跑了一台rancher server 所有的容器都在这个物理机上运行,测试要求修改某一台容器的系统时间不影响其他容器的系统时间,等测试测试完成后再修改回原来的时间,目前去网上搜了很多办法目前还没有找到很好的解决方案可以实现动态修改单个容器的系统时间[/b]
已邀请:
我们用的是compose方式启动docker,之前有个项目需要在utc-8时区下运行,我们当时是在yaml文件内指定 command 来修改容器时区

command:

类似的,你也可以通过command来指定时间

希望能帮助到你

 
我们现在要是想实现容器的动态修改时间比如我开启了10个应用的容器这10个应用彼此直接都互相联系,测试要连着动态修改其中5台容器的系统时间,你说的用命令是没有办法实现的因为docker是共享kernel的你可以更改容器的时区但是是不能动态修改每个容器的时间的,而且测试要求修改了系统时间还不能重启容器
如微信群中的讨论,用libfaketime已经算是方便的了。原则上讲出现这种需求,就不应该使用docker了。

https://serverfault.com/questions/824631/how-to-set-system-time-dynamically-in-a-docker-container
在业务代码中实现的方式,里面也提到了。

你可以这样做,基于libfaketime包装一个API服务,接口实现就是把传入的参数设定成对应的环境变量os.environ。
然后每个镜像启动时都默认启动这个服务,这样就可以可以随时设定每个容器的时间。

要回复问题请先登录注册