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/cudapytorch/pytorch 官方镜像。

最后更新:2025-12

AI导航助手

Powered by DeepSeek

你好!我是AI导航助手,由DeepSeek驱动。

我可以帮你: • 推荐适合你的AI模型 • 解答AI相关问题 • 直接带你跳转到相关页面

试试点击下方问题,或直接输入你的问题!

快捷提问:

哪个AI模型最好?有免费的AI吗?写代码用哪个?API怎么接入?

点击按钮可直接跳转到相关页面