Docker 部署 AI 应用指南
- **环境隔离**: 你的 Stable Diffusion 需要 PyTorch 1.13,而 vLLM 需要 PyTorch 2.1,装在同一个系统里必定冲突。Docker 让它们互不干扰。
5分钟
2025-12-26
部署运维服务器Docker
Docker 部署 AI 应用指南
在 AI 开发中,环境配置(CUDA 版本、Python 依赖、系统库)往往是最大的噩梦。Docker 将应用及其依赖打包成一个轻量级的容器,保证了“在我的机器上能跑,在服务器上也能跑”。
1. 为什么 AI 需要 Docker
- 环境隔离: 你的 Stable Diffusion 需要 PyTorch 1.13,而 vLLM 需要 PyTorch 2.1,装在同一个系统里必定冲突。Docker 让它们互不干扰。
- 一键部署: 也就是交付产物。别人不需要重新
pip install,只需docker run。 - GPU 直通: NVIDIA Container Toolkit 允许容器直接调用宿主机的显卡。
2. 核心概念
- Dockerfile: 菜谱。告诉 Docker 怎么构建镜像。
- Image (镜像): 做好的菜。只读的模板。
- Container (容器): 正在吃的菜。镜像运行起来的实例。
- Volume (挂载): 盘子。用于把数据(如模型权重)保存在容器外部,防止容器删除后数据丢失。
3. 安装与配置 (Ubuntu + NVIDIA)
AI 部署通常在 Linux 服务器上。
3.1 安装 Docker
curl -fsSL https://get.docker.com | sh
3.2 安装 NVIDIA Container Toolkit (关键)
为了让 Docker 能用显卡,必须装这个。
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
4. 编写 Dockerfile 实战
假设我们要部署一个简单的 Python AI 应用。
# 1. 基础镜像:选择带 CUDA 的 PyTorch 官方镜像
FROM pytorch/pytorch:2.1.2-cuda12.1-cudnn8-runtime
# 2. 设置工作目录
WORKDIR /app
# 3. 复制依赖文件并安装
COPY requirements.txt .
# 使用清华源加速
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 4. 复制源代码
COPY . .
# 5. 暴露端口
EXPOSE 8000
# 6. 启动命令
CMD ["python", "app.py"]
5. 常用命令速查
# 构建镜像
docker build -t my-ai-app:v1 .
# 运行容器 (使用 GPU)
# --gpus all: 使用所有显卡
# -p 8000:8000: 端口映射
# -v /home/models:/app/models: 挂载模型目录
docker run -d --gpus all -p 8000:8000 -v /home/models:/app/models my-ai-app:v1
# 查看正在运行的容器
docker ps
#看日志
docker logs -f <Container_ID>
# 进入容器内部
docker exec -it <Container_ID> /bin/bash
6. 常用 AI 镜像推荐
- Ollama:
docker pull ollama/ollama - vLLM:
docker pull vllm/vllm-openai - Stable Diffusion WebUI: 社区有很多打包好的镜像(如
siutin/stable-diffusion-webui-docker)。 - Python/CUDA: 认准 Docker Hub 上的
nvidia/cuda或pytorch/pytorch官方镜像。
最后更新:2025-12