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

Docker容器中Ollama模型拉取服务异常退出及部署方案咨询

问题分析与解决方案

核心问题拆解

  1. 退出码0的本质:ollama-models-pull是一次性任务服务,执行完成后正常退出(退出码0代表执行成功),这本身不是异常。但如果模型实际未拉取成功,问题出在拉取命令的写法上。
  2. 容器通信错误:在Docker Compose自定义网络中,容器间通信应使用服务名ollama,而非指向宿主机的host.docker.internal。
  3. 命令逻辑缺陷:原命令中两个curl并行执行,且未适配Ollama API的流式响应特性,可能导致拉取未完成就提前终止。

修正后的完整docker-compose.yml配置

services:
  ollama:
    container_name: ollama_v2
    image: ollama/ollama:latest
    restart: unless-stopped
    volumes:
      - "./ollamadata:/root/.ollama"   # 持久化模型与数据
    ports:
      - "11434:11434"
    healthcheck:
      test: ["CMD", "ollama", "list"]
      interval: 10s
      timeout: 30s
      retries: 5
      start_period: 10s
    networks:
      - ollama_network

  ollama-models-pull:
    container_name: ollama-models-pull
    image: ollama/ollama:latest  # 改用Ollama官方镜像拉取,更稳定
    depends_on:
      ollama:
        condition: service_healthy
    volumes:
      - "./ollamadata:/root/.ollama"  # 共享存储卷,模型直接存入持久化目录
    command: >
      sh -c "
        ollama pull mistral:latest &&
        ollama pull nomic-embed-text
      "
    networks:
      - ollama_network

  chatbot:
    container_name: chatbot_v2
    build:
      context: ./
      dockerfile: Dockerfile
    restart: unless-stopped
    environment:
      - API_URL=http://ollama:11434  # 改用服务名访问Ollama
    ports:
      - "8501:8501"
    depends_on:
      ollama-models-pull:
        condition: service_completed_successfully
    networks:
      - ollama_network

networks:
  ollama_network:
    driver: bridge

关键修改说明

  1. 替换模型拉取方式:放弃curl调用API,直接用Ollama官方镜像的ollama pull命令,避免流式响应适配问题,拉取逻辑更可靠。
  2. 修复容器通信地址:将所有容器内的Ollama访问地址从host.docker.internal改为服务名ollama,符合Docker Compose容器间通信规则。
  3. 串行执行拉取命令:用sh -c和&&确保第一个模型拉取完成后,再执行第二个,避免并行拉取导致的资源竞争。

验证步骤

  1. 启动服务:docker-compose up -d
  2. 检查模型拉取结果:docker exec ollama_v2 ollama list,输出应包含mistral:latest和nomic-embed-text
  3. 验证聊天机器人:访问服务器的8501端口,确认可正常调用模型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:30:57