Py学习  »  docker

如何打造“进化”的docker形象

mibutec • 4 年前 • 147 次点击  

我有一个docker容器,其中包含一个批处理进程,它执行一些计算并将结果存储在 /data 在容器里。每当应用程序启动时,它需要从 /数据

因为我做不到的原因 /数据 某种卷或外部存储器,但它必须在容器内。

为了不需要多次计算,我尝试根据 /数据 在我的批次中每次运行之后。

/数据 相当大,包含很多文件,但是在一次批处理执行后对该目录的更改很小。所以我想得到一个这样的层堆栈:

Update run +...                                     (some MB)
Update run +2                                       (some MB)
Update run +1                                       (some MB)
First update run                                    (some MB)
Initial run                                         (several GB)
Base layer containing application and empty `/data` (some 100 MB for initial stack)

初始运行层将非常大,因为它包含从一开始的所有结果。更新运行只包含一小部分内部更改的数据 /数据

我尝试了以下方法:

  • 启动基本容器(空 /数据 )
  • 批处理运行后提交状态到某个临时映像
  • 做一个像这样的多级构建
FROM temporary_image as actual_state
FROM prepared_batch

COPY --from=actual_state /data /data
  • 开始下一个迭代基于 prepared_batch
  • 批处理运行后提交状态到某个临时映像
  • 再做一次多级建造
  • ...

作为结果层堆栈,我得到如下

Update run +...                                     (several GB)
Update run +2                                       (several GB)
Update run +1                                       (several GB)
First update run                                    (several GB)
Initial run                                         (several GB)
Base layer containing application and empty `/data` (some 100 MB for initial stack)

所以我对层规范化工作原理的理解似乎是不对的。实现目标层结构的正确方法是什么?有可能吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52892
 
147 次点击