使用 Conda 环境创建 Docker 镜像的完整指南

使用 Conda 环境创建 Docker 镜像的完整指南

在现代开发中,容器化已经成为管理和部署复杂软件环境的首选方式。对于基于 Conda 的 Python 环境,如何将本地环境高效地迁移到 Docker 镜像中是一项常见但关键的任务。本文提供了两种方法,分别是基于网络安装基于本地环境的 Dockerfile 配置,帮助开发者快速构建和部署符合需求的 Docker 镜像。

1.基于网络安装的Dockerfile

(1)进入指定环境下,导出环境列表

bash 复制代码
conda activate llama-factory
conda env export --name llama-factory > environment.yml

(2)新建Dockerfile

这样build的image会去按environment.yml中的包,一个个安装到image中

bash 复制代码
# 基于官方的 Conda 镜像
FROM continuumio/miniconda3

# 设置工作目录
WORKDIR /app

# 将环境配置文件复制到容器中
COPY environment.yml /app/

# 创建 Conda 环境并安装依赖
RUN conda env create -f environment.yml

# 激活环境
SHELL ["conda", "run", "-n", "llama-factory", "/bin/bash", "-c"]

# 设置工作目录(可选)
WORKDIR /app

# 容器启动时,默认激活环境并启动 bash
ENTRYPOINT ["conda", "run", "-n", "llama-factory", "/bin/bash"]

# 如果容器启动时需要执行其他命令,使用 CMD 指定
CMD ["bash"]

2.基于本地环境的Dockerfile

(1)准备环境

可以先把conda环境下的包拷贝到当前目录下,并且拷贝所需数据及代码

bash 复制代码
cp -r /home/lizhijun/anaconda3/envs/llama-factory ./llama-factory

(2)新建Dockerfile

需要修改下按自己的情况,修改下

bash 复制代码
COPY llama-factory-env /opt/conda/envs/llama-factory
COPY LLaMA-Factory /workspace/LLaMA-Factory
bash 复制代码
# 使用Ubuntu基础镜像
FROM ubuntu:20.04

# 避免交互式提示
ENV DEBIAN_FRONTEND=noninteractive

# 安装基础工具
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

# 创建必要的目录
WORKDIR /workspace

# 从当前目录复制环境
COPY llama-factory-env /opt/conda/envs/llama-factory


# 确保复制的环境可用并升级 pip
RUN /bin/bash -c "conda init bash && \
    source ~/.bashrc && \
    source activate llama-factory && \
    python -m pip install --upgrade pip"


# 复制 LLaMA-Factory 文件夹
COPY LLaMA-Factory /workspace/LLaMA-Factory

# 进入 LLaMA-Factory 目录
WORKDIR /workspace/LLaMA-Factory

# 设置容器启动时默认使用的 Shell
CMD ["/bin/bash"]

3.编译及运行

bash 复制代码
docker build -t llama-factory-image .
docker run --gpus all -it llama-factory-image

运行成功如下图

4.保存(迁移)及加载

把刚刚的docker image转为压缩包,放到新机子上加载

bash 复制代码
docker save -o llama-factory-image.tar llama-factory-image
docker load -i llama-factory-image.tar
相关推荐
tonngw19 分钟前
【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
macos·docker·容器·开源·github·docker desktop·orbstack
debug 小菜鸟3 小时前
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
docker·云计算·aws
SpikeKing3 小时前
Server - 使用 Docker 配置 PyTorch 研发环境
pytorch·docker·llm
斯普信云原生组4 小时前
Docker构建自定义的镜像
java·spring cloud·docker
2201_761199045 小时前
k8s4部署
云原生·容器·kubernetes
小柏ぁ5 小时前
calico/node is not ready: BIRD is not ready: BGP not established with xxx
运维·docker·kubernetes
三劫散仙6 小时前
kubernetes jenkins pipeline优化拉取大仓库性能指定分支+深度
容器·kubernetes·jenkins
西京刀客6 小时前
k8s热更新-subPath 不支持热更新
云原生·容器·kubernetes·configmap·subpath
weixin_434936287 小时前
k8S 命令
linux·容器·kubernetes
nuczzz9 小时前
GPU虚拟化
docker·kubernetes·k8s·gpu·nvidia