如何将 Python 库添加到 Docker 镜像

Sam*_*uel 12 python docker

今天我开始使用 Docker。所以请耐心等待。我什至不确定标题是否有意义。我刚刚使用 Docker 安装了 Tensorflow 并想运行一个脚本。但是,我收到以下错误消息,指出未安装 Matplotlib。

Traceback (most recent call last):
File "tf_mlp_v3.py", line 3, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
Run Code Online (Sandbox Code Playgroud)

我使用以下命令安装 Tensorflow

docker pull tensorflow/tensorflow:latest-gpu-jupyter
Run Code Online (Sandbox Code Playgroud)

我现在如何将其他 python 库(例如 Matplotlib)添加到该图像中?

Joh*_*ica 15

要自定义图像,您通常希望使用现有图像作为基础创建一个新图像。在 Docker 中,当现有图像不能完全满足您的要求时,创建自定义图像是非常常见的。通过将您的图像基于公共图像,您可以添加自己的自定义,而无需重复(甚至不知道)基本图像的作用。

  1. 将必要的步骤添加到新的Dockerfile 中。

    FROM tensorflow/tensorflow:latest-gpu-jupyter
    
    RUN <extra install steps>
    COPY <extra files>
    
    Run Code Online (Sandbox Code Playgroud)

    RUN和COPY是您可能使用的说明示例。RUN将运行您选择的命令,例如RUN pip install matplotlib. COPY用于从您的机器向映像添加新文件,例如配置文件。

  2. 构建并标记新图像。给它一个您选择的新名称。我会称它为my-customized-tensorflow,但你可以随意命名它。

    假设Dockerfile在当前目录中,运行docker build:

    $ docker build -t my-customized-tensorflow .
    
    Run Code Online (Sandbox Code Playgroud)
  3. 现在您可以my-customized-tensorflow像使用任何其他图像一样使用。

    $ docker run my-customized-tensorflow
    
    Run Code Online (Sandbox Code Playgroud)