使用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)進(jìn)入指定環(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 # 容器啟動時,默認(rèn)激活環(huán)境并啟動 bash ENTRYPOINT ["conda", "run", "-n", "llama-factory", "/bin/bash"] # 如果容器啟動時需要執(zhí)行其他命令,使用 CMD 指定 CMD ["bash"]
2.基于本地環(huán)境的Dockerfile
(1)準(zhǔn)備環(huán)境
可以先把conda環(huán)境下的包拷貝到當(dāng)前目錄下,并且拷貝所需數(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 # 從當(dāng)前目錄復(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 # 進(jìn)入 LLaMA-Factory 目錄 WORKDIR /workspace/LLaMA-Factory # 設(shè)置容器啟動時默認(rèn)使用的 Shell CMD ["/bin/bash"]
3.編譯及運(yùn)行
docker build -t llama-factory-image . docker run --gpus all -it llama-factory-image
運(yùn)行成功如下圖
4.保存(遷移)及加載
把剛剛的docker image轉(zhuǎn)為壓縮包,放到新機(jī)子上加載
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搭建redis-sentinel集群的方法示例
這篇文章主要介紹了基于docker搭建redis-sentinel集群的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress實(shí)踐
本文給大家分享的是作者基于Docker搭建 Nginx+PHP+MySQL 環(huán)境并部署WordPress的詳細(xì)過程,非常的全面,有需要的小伙伴可以參考下2017-02-02docker中mysql數(shù)據(jù)庫密碼修改方法
長時間使用非關(guān)系型數(shù)據(jù)庫MongoDB近期遇到突然想使用mysql卻發(fā)現(xiàn)mysql密碼忘記了,下面這篇文章主要給大家介紹了關(guān)于docker中mysql數(shù)據(jù)庫密碼修改方法的相關(guān)資料,需要的朋友可以參考下2023-11-11docker中的jenkins之流水線構(gòu)建項目步驟詳解
jenkins有2種流水線分為聲明式流水線與腳本化流水線,腳本化流水線是jenkins舊版本使用的流水線腳本,新版本Jenkins推薦使用聲明式流水線,本文給大家介紹docker中的jenkins之流水線構(gòu)建項目,感興趣的朋友一起看看吧2023-08-08Docker中Cgroup資源配置的實(shí)現(xiàn)
Cgroup不僅可以限制被namespace?隔離起來的資源,還可以為資源設(shè)置權(quán)重、計算使用量、操控進(jìn)程啟停等,本文主要介紹了Docker中Cgroup資源配置的實(shí)現(xiàn),感興趣的可以了解一下2023-09-09