基于Docker容器部署Ollama并运行本地大语言模型
随着大型语言模型(LLM)技术的飞速发展,其应用日益广泛。然而,直接调用云端LLM服务接口通常伴随着不菲的费用。对于个人开发者、研究人员或仅仅希望在本地进行体验的用户来说,在本地环境中部署大模型是一个更经济且私密的解决方案。Ollama 提供了一个极简的框架,使得在本地运行各类大模型变得异常简单。结合 Docker 容器技术,我们可以进一步简化 Ollama 的安装与管理过程。本文将详细介绍如何使用 Docker 部署 Ollama,并在此基础上加载、运行以及管理本地大语言模型。
一、通过Docker安装Ollama服务
1.1 查阅官方文档
在开始安装之前,强烈建议查阅 Ollama 的官方 Docker 文档,以获取最新且最专业的安装指南和配置选项。官方文档地址:https://github.com/ollama/ollama/blob/main/docs/docker.md
1.2 环境说明
本次部署演示基于 Virtualbox 虚拟机中的 CentOS 7 环境。由于当前虚拟机环境不支持 NVIDIA GPU 直通(passthrough),Ollama 将以 CPU 模式运行。如果您的宿主机具备 NVIDIA GPU,并能将其正确映射到容器中,性能将会有显著提升。本教程主要关注 CPU-only 部署方式。
1.3 Docker环境准备与Ollama部署
1.3.1 检查Docker服务状态
在进行任何容器部署前,请确保 Docker 服务已在您的系统上正常运行。您可以使用以下命令检查 Docker 守护进程的状态:
systemctl status docker
如下图所示,如果 Docker 服务处于非活动状态,请使用以下命令启动它:

systemctl start docker
1.3.2 运行Ollama Docker容器
接下来,我们将通过一条 Docker 命令来启动 Ollama 容器。这条命令将下载 Ollama 镜像(如果本地不存在),并在后台运行一个 Ollama 实例。
docker run -d -v /opt/ollama_data:/root/.ollama -p 11434:11434 --name ollama_server ollama/ollama
下面是对命令中关键参数的解释:
docker run: 用于创建并启动一个新容器。-d(--detach): 使容器在后台运行,并打印容器 ID。这意味着容器启动后不会占用当前终端。-v /opt/ollama_data:/root/.ollama(--volume): 创建一个数据卷映射。它将宿主机上的/opt/ollama_data目录挂载到容器内部的/root/.ollama目录。这样做的好处是,Ollama 下载的大模型文件、配置等将持久化存储在宿主机上,即使容器被删除或重建,数据也不会丢失。-p 11434:11434(--publish): 将容器内部的11434端口映射到宿主机的11434端口。Ollama 默认在此端口提供其 API 服务,通过端口映射,外部应用或浏览器即可访问 Ollama 服务。--name ollama_server: 为新创建的容器指定一个易于识别的名称,这里命名为ollama_server。这比使用随机生成的容器 ID 更便于后续管理。ollama/ollama: 指定要使用的 Docker 镜像。Docker 会从 Docker Hub 拉取ollama/ollama镜像的最新版本(如果没有指定标签)。
1.3.3 验证Ollama服务启动
命令执行成功后,您将看到一串容器 ID,如下图所示:

要进一步确认 Ollama 服务是否正常运行,您可以通过浏览器访问 http://<您的宿主机IP地址>:11434/。如果页面显示 "Ollama is running",则表示 Ollama 容器已成功启动并正在监听请求。

二、在Ollama中管理与运行大语言模型
2.1 加载并交互Codellama:7b模型
Ollama 官方模型库提供了众多预训练模型供您选择,您可以在 https://ollama.com/library 查找适合您需求的大模型。
2.1.1 进入Ollama容器命令行
为了在 Ollama 容器内部执行模型相关操作,我们需要进入到其命令行环境:
docker exec -it ollama_server bash
请注意,这里的 ollama_server 应与您在启动容器时指定的 --name 参数保持一致。
2.1.2 运行并下载指定模型
进入容器后,您可以使用 ollama run 命令来下载并启动一个模型。如果本地没有该模型,Ollama 会自动从其仓库中下载。这里以 codellama:7b 模型为例:
ollama run codellama:7b
当模型下载并加载完成后,您将直接进入一个交互式的问答界面,可以开始与大模型进行对话。如下图所示:

要退出模型交互界面,只需按下键盘上的 CTRL + D 组合键。
2.2 查看与移除本地模型
2.2.1 列出所有已下载模型
在 Ollama 容器的命令行中,您可以使用 ollama list 命令查看当前本地存储的所有大模型及其大小信息:
ollama list
2.2.2 删除本地大模型
如果您不再需要某个模型,或者想要释放存储空间,可以使用 ollama rm 命令将其从本地移除:
ollama rm codellama:7b
将 codellama:7b 替换为您希望删除的模型的名称和标签。