【问题标题】:How to install a python library to a pulled docker image?如何将 python 库安装到拉取的 docker 映像中?
【发布时间】:2019-07-05 22:35:33
【问题描述】:

我已经拉取了一个 docker 镜像来运行气流(pucker/airflow)并且它运行良好。但是,我无法在此图像上安装新的 python 库。我读过你必须在 docker 文件中添加包。但是,我不知道它存储在哪里。我在 MacOSX 上工作。

感谢您的帮助

【问题讨论】:

  • 请添加您的Dockerfile 并添加docker build.. 命令(您的用法)。
  • 您可能需要一个Dockerfile,它基于您正在使用的airflow 映像,并在其中安装您的自定义库

标签: python docker airflow


【解决方案1】:

据我了解,您只是从 dockerhub 中提取了一个 puckel/docker-airflow 映像,而您只是在运行该映像。

如果您需要添加额外的库,并且想要在构建过程中包含这些库的安装,您可能需要Dockerfile。 比如你想安装requests,一个极简的Dockerfile可以如下:

FROM puckel/docker-airflow
RUN pip install requests

myproject/ 中创建这样一个文件,然后在myproject/ 中创建cd 并简单地运行docker build . 这将输出一个简单的日志,例如:

Step 1/2 : FROM puckel/docker-airflow
 ---> 12753a529f9f
Step 2/2 : RUN python3 -m pip install requests
 ---> Running in 66860c8ca099
Requirement already satisfied: requests in /usr/local/lib/python3.6/site-packages (2.22.0)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/site-packages (from requests) (2019.3.9)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/site-packages (from requests) (3.0.4)
Requirement already satisfied: idna<2.9,>=2.5 in /usr/local/lib/python3.6/site-packages (from requests) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/site-packages (from requests) (1.25.3)
Removing intermediate container 66860c8ca099
 ---> 66b9d91c4c95
Successfully built 66b9d91c4c95

然后运行docker run 66b9d91c4c95 实例化你刚刚创建的图像,或docker run -it 66b9d91c4c95 bash 在其中打开bash

您可以阅读 docker tags 以将 66b9d91c4c95 替换为有意义的名称。

【讨论】:

    【解决方案2】:

    您使用过docker pulldocker run 命令吗?

    如果有,说明有容器在运行,可以通过docker ps查看

    如果你想在容器中安装python库,你可以通过

    进入容器
    docker exec -it container_id bash
    

    然后你去pip install

    【讨论】:

      猜你喜欢
      • 2020-10-12
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 2017-11-04
      • 2023-03-17
      • 2020-01-31
      • 1970-01-01
      • 2020-03-23
      相关资源
      最近更新 更多