当前位置:首页 > 技术 > 正文内容

基于Docker容器部署Ollama并运行本地大语言模型

访客 技术 2026年7月5日 2

随着大型语言模型(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 服务处于非活动状态,请使用以下命令启动它:

Docker status check

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 Docker install result

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

Ollama running verification

二、在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

当模型下载并加载完成后,您将直接进入一个交互式的问答界面,可以开始与大模型进行对话。如下图所示:

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 替换为您希望删除的模型的名称和标签。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。