gpt4 book ai didi

docker - docker中的模拟时间(-compose)

转载 作者:行者123 更新时间:2023-12-02 19:23:38 25 4
gpt4 key购买 nike

在测试执行作业的 docker 镜像的范围内,我需要在其执行期间模拟容器日期,以便进行一些涉及时间的准确测试。

环顾互联网,我还没有找到任何解决方案,只是一些可以遵循的路径。
我需要的是一种更改系统日期的方法,而无需手动连接到 shell,我计划使用 docker-compose 设置测试,并且我想将日期配置为配置参数。

你有过类似的经历吗?你是怎么解决的?

第一个问题是更改日期,我只找到了 date命令去做。

我正在寻找两种方法:

  • 扩展基础镜像并执行dateentrypoint 之前.
    我不觉得为每个容器重新创建一个图像是个问题,但我不喜欢我不能“代理”入口点的事实,这是我发现执行 date 的唯一方法。命令是用 sh 重新定义入口点执行它然后调用旧入口点,但它必须“知道”它是什么,我没有找到一种方法来做任何基本图像。
  • 使用 NTP 服务器。在这件事上,我还不是一个大三学生,但我正在考虑在 docker 创建的网络中注入(inject)一个 ntp 服务器,该服务器将我的模拟日期告诉其网络中的其他容器。但是我没有找到一种方法来在 docker 中使用假时间配置模拟的 ntp 服务器。

  • 目前我被困住了,还有一个“你不能使用 NTP 服务器,因为 blablabla ...”会有所帮助,或者如果你有办法做到这一点也会更好!

    最佳答案

    我实际上无法更改 docker 容器中的日期。 docker 时钟与系统时钟同步。

    不过还有其他解决方案:Is it possible change date in docker container?

    根据我对 ntp 的了解,ntp 客户端尝试更新系统时钟。因此,大概您不能使用 NTP,因为天真的安装会尝试更改系统时钟,然后无法在 docker 中这样做。也许有一个模拟的ntp客户端,但我认为你又回到了同样的问题,你最好在那个链接中使用模拟库。

    测试时钟偏差很重要(https://aphyr.com/posts/299-the-trouble-with-timestamps),我也很惊讶互联网上没有更多关于此的内容。

    关于docker - docker中的模拟时间(-compose),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57999666/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com