You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ollama Docker镜像结合LangChain运行LLaMA模型推理时出错

错误原因分析

你遇到的镜像拉取错误核心是Docker无法从官方仓库获取python:3.9-slim镜像,EOF提示请求中途中断,常见诱因包括:

  • 网络连接不稳定,请求未完成就断开
  • 防火墙/代理拦截了Docker对镜像仓库的访问
  • 本地Docker缓存损坏,导致镜像元数据解析失败
  • 镜像标签解析歧义(概率较低,python:3.9-slim目前仍在官方仓库中)

另外你的配置还有两个潜在问题,即使解决拉取错误,后续运行也会报错:

  1. Dockerfile仅复制了Ollama模型文件,但未启动Ollama服务,脚本中OllamaLLM默认连接localhost:11434,会出现连接失败
  2. requirements.txt缺失pandas依赖,脚本使用了pd.DataFrame,安装阶段会报错

解决方法

一、修复镜像拉取失败问题

按以下步骤逐一排查:

  1. 验证网络连通性:在主机执行curl https://registry-1.docker.io,确认能正常返回内容
  2. 切换国内镜像源:修改Docker配置添加加速源(以Linux为例):
    编辑/etc/docker/daemon.json:
    {
      "registry-mirrors": ["https://<你的国内镜像加速地址>"]
    }
    
    保存后重启Docker服务:systemctl restart docker
  3. 清理无效缓存:执行命令清理损坏的缓存数据:
    docker system prune -a
    
  4. 指定完整镜像路径:将Dockerfile中FROM python:3.9-slim改为FROM docker.io/library/python:3.9-slim,避免镜像解析歧义
  5. 检查代理配置:如果主机使用代理,确保Docker已同步代理设置,防止请求被拦截

二、修复Dockerfile和依赖的潜在问题

提供两种可行的部署方案:

方案1:单容器同时运行Ollama和Python脚本

基于Ollama镜像搭建Python环境,直接复用容器内的Ollama服务:

FROM ollama/ollama:latest

# 安装Python 3.9及依赖工具
RUN apt-get update && apt-get install -y python3.9 python3-pip && rm -rf /var/lib/apt/lists/*
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

WORKDIR /app
COPY requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt
COPY script.py .

# 先启动Ollama服务,延迟10秒后运行脚本
CMD ["sh", "-c", "ollama serve & sleep 10 && python3 script.py"]

方案2:Docker Compose多容器部署

将Ollama和Python服务分开,通过容器网络互通:
创建docker-compose.yml:

version: '3.8'
services:
  ollama:
    image: ollama/ollama:latest
    volumes:
      - ollama_models:/root/.ollama/models
    command: ["serve"]
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:11434/api/tags"]
      interval: 10s
      timeout: 5s
      retries: 3

  app:
    build: .
    depends_on:
      ollama:
        condition: service_healthy
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - .:/app

volumes:
  ollama_models:

对应的Dockerfile:

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY script.py .
CMD ["python", "script.py"]

同时修改脚本中Ollama初始化代码,指定服务地址:

model = OllamaLLM(model="llama3.1", base_url="http://ollama:11434")

修复requirements.txt

添加缺失的pandas:

pandas
networkx
langchain
langchain_ollama

验证步骤
  1. 先单独拉取镜像测试:docker pull python:3.9-slim,确认拉取正常
  2. 构建镜像或启动Compose服务,查看容器日志确认服务运行状态
  3. 检查脚本输出,确认模型调用成功

内容的提问来源于stack exchange,提问作者Ohm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:08:10