如何在创建Ollama Docker容器时自动拉取指定模型?
自动在Ollama Docker容器中加载指定模型的解决方案
你遇到的问题是Ollama容器启动后未自动拉取llama3模型,导致其他服务调用时提示模型不存在。下面提供三种自动化部署时自动加载模型的方法:
方法一:在docker-compose.yml中添加启动命令
直接在容器配置里指定启动后先拉取模型,再启动Ollama服务。修改后的docker-compose.yml如下:
ollama: image: ollama/ollama:latest ports: - 11434:11434 volumes: - ./ollama/ollama:/root/.ollama container_name: ollama pull_policy: always tty: true restart: always command: ["sh", "-c", "ollama pull llama3 && ollama serve"]
容器启动时会优先执行ollama pull llama3,如果模型已经存在(挂载目录里有之前拉取的文件),会直接跳过拉取步骤,启动服务。
方法二:预下载模型到本地挂载目录
如果不想每次启动容器都等待模型拉取,可以提前在本地准备好模型文件:
- 本地安装Ollama后执行
ollama pull llama3 - 找到本地Ollama的存储目录(默认是
~/.ollama),将其中的models文件夹复制到docker-compose配置的./ollama/ollama目录下 - 启动容器后,会直接读取本地已有的模型文件,无需再拉取
方法三:构建预包含模型的自定义镜像
如果需要频繁部署,可构建一个自带llama3模型的Ollama镜像:
- 新建Dockerfile,内容如下:
FROM ollama/ollama:latest RUN ollama pull llama3 CMD ["ollama", "serve"]
- 修改docker-compose.yml使用自定义镜像:
ollama: build: . ports: - 11434:11434 volumes: - ./ollama/ollama:/root/.ollama container_name: ollama pull_policy: always tty: true restart: always
构建镜像时会把模型打包进去,后续启动容器直接就能使用模型。
内容的提问来源于stack exchange,提问作者Sir hennihau
相关产品推荐
相关产品推荐

