繁体   English   中英

如何在 docker 图像中安装 Python package?

[英]How to install a Python package inside a docker image?

有没有办法安装 python package 而无需重建 docker 图像? 我试过这种方式:

docker compose run --rm web sh -c "pip install requests"

但是如果我列出使用的包

docker-compose run --rm web sh -c "pip freeze"

我没有得到新的。 它看起来像是安装在容器中但没有安装在图像中。

我的问题是在构建 docker 映像后安装新的 python package 的最佳方法是什么? 提前致谢

docker-compose用于与Docker一起运行多容器应用。

在您的情况下,您似乎使用安装了 python 的 Docker 图像作为入口点来做一些进一步的工作。

构建 docker 图像后,您可以运行它:

$ docker run -dit -name my_container_name image_name

然后运行:

$ docker exec -ti my_container_name bash

$ docker exec -ti my_container_name sh

如果 docker 图像中没有 bash。 这将为您提供 shell 访问您刚刚创建的容器的权限。 然后,如果您的容器中安装了 pip,您可以像在您的操作系统上一样安装您需要的任何 python package。

请注意,您安装的所有内容仅保留在您创建的容器中。 如果你删除这个容器,你手动安装的所有东西都会消失。

我对 docker 不太了解,但如果您执行命令,docker 引擎将根据您的web图像启动一个新容器并运行pip install requests命令。 执行命令后,容器将停止运行。 由于您指定了--rm标志,docker 引擎将在您的新容器停止后删除它,从而删除整个容器以及已安装的包。

AFAIK 你不能在不重建图像的情况下添加包。 我知道您可以在不移除容器的情况下运行命令,并且您还可以从容器中制作图像。 (那些图像应该包括包)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM