簡體   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