使用Conda環(huán)境創(chuàng)建Docker鏡像的完整步驟指南
前言
在現(xiàn)代開發(fā)中,容器化已經(jīng)成為管理和部署復(fù)雜軟件環(huán)境的首選方式。對于基于 Conda 的 Python 環(huán)境,如何將本地環(huán)境高效地遷移到 Docker 鏡像中是一項常見但關(guān)鍵的任務(wù)。本文提供了兩種方法,分別是基于網(wǎng)絡(luò)安裝和基于本地環(huán)境的 Dockerfile 配置,幫助開發(fā)者快速構(gòu)建和部署符合需求的 Docker 鏡像。
1.基于網(wǎng)絡(luò)安裝的Dockerfile
(1)進入指定環(huán)境下,導(dǎo)出環(huán)境列表
conda activate llama-factory conda env export --name llama-factory > environment.yml
(2)新建Dockerfile
這樣build的image會去按environment.yml中的包,一個個安裝到image中
# 基于官方的 Conda 鏡像 FROM continuumio/miniconda3 # 設(shè)置工作目錄 WORKDIR /app # 將環(huán)境配置文件復(fù)制到容器中 COPY environment.yml /app/ # 創(chuàng)建 Conda 環(huán)境并安裝依賴 RUN conda env create -f environment.yml # 激活環(huán)境 SHELL ["conda", "run", "-n", "llama-factory", "/bin/bash", "-c"] # 設(shè)置工作目錄(可選) WORKDIR /app # 容器啟動時,默認激活環(huán)境并啟動 bash ENTRYPOINT ["conda", "run", "-n", "llama-factory", "/bin/bash"] # 如果容器啟動時需要執(zhí)行其他命令,使用 CMD 指定 CMD ["bash"]
2.基于本地環(huán)境的Dockerfile
(1)準備環(huán)境
可以先把conda環(huán)境下的包拷貝到當前目錄下,并且拷貝所需數(shù)據(jù)及代碼
cp -r /home/lizhijun/anaconda3/envs/llama-factory ./llama-factory
(2)新建Dockerfile
需要修改下按自己的情況,修改下
COPY llama-factory-env /opt/conda/envs/llama-factory COPY LLaMA-Factory /workspace/LLaMA-Factory
# 使用Ubuntu基礎(chǔ)鏡像
FROM ubuntu:20.04
# 避免交互式提示
ENV DEBIAN_FRONTEND=noninteractive
# 安裝基礎(chǔ)工具
RUN apt-get update && \
apt-get install -y \
wget \
bzip2 \
ca-certificates \
libglib2.0-0 \
libxext6 \
libsm6 \
libxrender1 \
git \
&& rm -rf /var/lib/apt/lists/*
# 安裝 Miniconda
RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
bash ~/miniconda.sh -b -p /opt/conda && \
rm ~/miniconda.sh && \
/opt/conda/bin/conda clean -a -y
# 添加 Miniconda 到 PATH
ENV PATH /opt/conda/bin:$PATH
# 創(chuàng)建必要的目錄
WORKDIR /workspace
# 從當前目錄復(fù)制環(huán)境
COPY llama-factory-env /opt/conda/envs/llama-factory
# 確保復(fù)制的環(huán)境可用并升級 pip
RUN /bin/bash -c "conda init bash && \
source ~/.bashrc && \
source activate llama-factory && \
python -m pip install --upgrade pip"
# 復(fù)制 LLaMA-Factory 文件夾
COPY LLaMA-Factory /workspace/LLaMA-Factory
# 進入 LLaMA-Factory 目錄
WORKDIR /workspace/LLaMA-Factory
# 設(shè)置容器啟動時默認使用的 Shell
CMD ["/bin/bash"]
3.編譯及運行
docker build -t llama-factory-image . docker run --gpus all -it llama-factory-image
運行成功如下圖

4.保存(遷移)及加載
把剛剛的docker image轉(zhuǎn)為壓縮包,放到新機子上加載
docker save -o llama-factory-image.tar llama-factory-image docker load -i llama-factory-image.tar
總結(jié)
到此這篇關(guān)于使用Conda環(huán)境創(chuàng)建Docker鏡像的文章就介紹到這了,更多相關(guān)Conda環(huán)境創(chuàng)建Docker鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
更改Docker默認數(shù)據(jù)目錄解決部署空間不足問題
隨著使用 Docker 的時間增加,存儲在默認數(shù)據(jù)目錄(通常是 /var/lib/docker)中的數(shù)據(jù)量也會不斷增大,最終可能導(dǎo)致服務(wù)器上的存儲空間不足,這篇文章將詳細介紹如何更改 Docker 的默認數(shù)據(jù)目錄,以便在服務(wù)器上釋放存儲空間并優(yōu)化資源利用,需要的朋友可以參考下2024-06-06
用Docker搭建nextcloud個人網(wǎng)盤教程
大家好,本篇文章主要講的是用Docker搭建nextcloud個人網(wǎng)盤教程,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下2021-12-12
Docker 手動配置容器網(wǎng)絡(luò)實例詳解
這篇文章主要介紹了Docker 手動配置容器網(wǎng)絡(luò)實例詳解的相關(guān)資料,這里有具體實現(xiàn),需要的朋友可以參考下2016-11-11
Docker容器處于Removal in process無法刪除問題及解決
這篇文章主要介紹了Docker容器處于Removal in process無法刪除問題及解決方案,具有很好的參考價值,希望對大家有所幫助。2023-07-07

