优化Docker映像大小

时间:2019-09-09 13:59:43

标签: python docker pytorch

我正在使用基础映像python:3.5-slim-buster为我的python应用构建docker映像。

我正在Dockerfile内运行以下命令:

RUN pip install --no-cache-dir -r requirements.txt,其在需求文件中具有torch库。

构建图像后,图像的大小为2.29 GB。但是,如果我在需求文件中构建不带火炬的图像,则只有约900 MB。

当我手动运行图像并检查容器内部时:

火炬(/usr/local/lib/python3.5/site-packages/torch)目录为1.3GB

因此,即使我进行了多阶段构建并尝试从中复制内容 /usr/local/lib/python3.5/site-packages换成新图像,我想它不会对我有帮助。

是否有其他标准的优化实践可以帮助我减小图像尺寸?

1 个答案:

答案 0 :(得分:1)

假设您想从pytorch(通常是神经网络)中获得某种训练有素的模型,则实际上应该使用多级Docker构建,如下所示(至少是IMO):

1。培训模型和导出

照常编写脚本,包括所需的所有依赖项。训练您的模型,并使用torchscript的torch.jit.script将其保存为工件。

2。第二阶段

使用C ++编写推理代码加载网络并编译源代码(使用libtorch)。

3。最终图像

复制上一步中的二进制文件并将其作为Docker的入口点,因此您可以将其作为一次性神经网络在容器中运行。