簡體   English   中英

如何使用 Docker 容器啟動 Conda 環境

[英]How to Start a Conda Environment with Docker Container

我是docker新手,如果這是一個愚蠢的問題,我深表歉意。

作為背景,我正在使用無法編輯或更改的 docker 圖像。 我使用docker run [various-args] [image-name]容器並啟動容器。 If I subsequently run docker exec -it [ID] bash , I can get a shell going from inside the container and it successfully executes a conda environment needed for all my python code, so I can just run python script.py and everything runs okay .

我想自動化這個過程以備將來使用,所以我想把這些命令放到一個腳本中,這樣我就不需要在環境中手動輸入或執行任何東西。 我認為可行的解決方案是:

docker exec -it [ID] bash -c "python script.py"

但這不起作用,導致 python 代碼的導入錯誤。 我的假設是 conda 環境沒有被激活,所以我嘗試執行conda activate my-env ,這會返回一個新的錯誤:

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.

所以,我按照說明先運行conda init bash看看是否有幫助,但這個錯誤最終還是會出現。 最終,如果我先執行 bash shell,然后手動開始運行 python 代碼,一切都很好,但如果我嘗試立即執行所有操作,原因是 conda 無法立即設置。 有沒有辦法在不編輯圖像本身的情況下完成這項工作,或者這是否需要重建圖像?

提前感謝ins!

conda conda activate function 由 conda conda init命令添加到.bashrc的代碼定義。 除非使用-l ( --login ) 標志,否則 Bash 不會獲取.bashrc

但是,Conda 並沒有打擾 shell,而是提供了一個在指定環境中執行的 conda conda run命令。 所以,嘗試類似的東西

docker exec -it [ID] conda run -n my-env python script.py

對於交互式腳本,可能還需要一些額外的conda run標志,例如--live-stream--no-capture-output 請參閱conda run -h

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM