跳转至

2025 年 6 月

Docker 中的 CMD 和 ENTRYPOINT

Docker 中的 CMD 和 ENTRYPOINT 都是用来指定容器启动时执行的命令,但它们的作用和使用场景有明显区别,理解它们的区别能帮助我们更灵活地控制容器行为。

CMD 和 ENTRYPOINT 的通俗理解

  • ENTRYPOINT:就像容器的“主菜”,是容器启动时必须执行的命令,无论启动容器时传入什么参数,这个命令都会执行。可以把它想象成披萨店的“披萨”,披萨是必做的主食。
  • CMD:就像披萨的“默认口味”,是容器启动时的默认参数或命令,如果启动容器时没有指定其他命令,CMD 会生效;如果指定了其他命令,CMD 会被覆盖。它是给 ENTRYPOINT 提供默认参数,或者单独作为默认命令使用。

  • 如果只有 CMD,启动容器时指定的命令会替代 CMD。

  • 如果只有 ENTRYPOINT,启动容器时的参数会附加到 ENTRYPOINT 命令后面。
  • 如果两者结合,ENTRYPOINT 定义主命令,CMD 定义默认参数,启动时可以覆盖 CMD 参数但不会替换 ENTRYPOINT。

pandas rolling exponential 滚动计算指数加权标准差会受起点影响

在使用 rolling(win_type="exponential").std() 计算标准差时,结果可能会受数据起点的影响。

本文将通过几个简单的代码示例,探究数据具有不同数据起点(通过 iloc[1:] 手动构造不同的数据起点进行模拟)对 Pandas rolling(win_type="exponential").std() 计算结果的影响,并提供了一个自定义函数实现严格控制滚动回看窗口,以获得一致的结果。