查看ollama状态:sudo systemctl status ollama

Linux 启动ollama服务报错:Failed to restart ollama.service: Unit ollama.service not found. - wuch - 博客园

检查端口:lsof  -i :11434 或 sudo netstat -tulnp | grep :11434,关闭占用端口进程,解决:Error: listen tcp 127.0.0.1:11434: bind: address already in use

关闭ollama服务:sudo systemctl stop ollama.service

停止自动重启:sudo systemctl disable ollama.service

关闭docker compose:docker compose down

设置ollama模型存储位置:vim /etc/profile -> 添加 export OLLAMA_MODELS=PATH, 执行 source /etc/profile

可修改ollama服务配置:vim /etc/systemd/system/ollama.service

添加如下内容:

Environment="OLLAMA_HOST=0.0.0.0:11434"  # 监听所有IP,端口可自定义

Environment="OLLAMA_ORIGINS=*"            # 允许所有跨域请求

Environment="OLLAMA_MODELS=/data/ollama/models" # 模型下载存储路径,一般为挂载的数据盘

【云馨AI-大模型】Linux部署Ollama,模型下载并配置公网访问与修改模型保存路径 - 知乎

本地的ollama模型可被外部调用

完成上述环境设置;

在主机防火墙开放11434端口:

sudo ufw allow 11434/tcp  # Linux系统:ml-citation{ref="6" data="citationList"}

Windows需在防火墙高级设置添加入站规则。

获取主机IP -> 启动本机ollama及模型 -> 使用其他机器测试:curl http://<主机IP>:11434/api/generate -d '{"model":"<模型名>","prompt":"你好"}':ml-citation{ref="5,6" data="citationList"}

sudo systemctl start ollama  # 启动ollama

sudo systemctl status ollama  # 确认状态为“active (running)”

sudo systemctl stop ollama  # 停止服务

编辑docker-compose.yaml文件:

version: '3.8'

services:

  ollama:

    image: ollama/ollama:latest

    container_name: ollama

    ports:

      - "11434:11434"

    volumes:

      - ./ollama:/home/rdcs/ollama/models

    restart: unless-stopped

    networks:

      - ollama-net

networks:

  ollama-net:

docker-compose up -d 运行

Docker部署全攻略:Ollama安装、本地大模型配置与One-API接入(非常详细)从零基础到精通,收藏这篇就够了!_docker部署ollama-CSDN博客

ollama/ollama - Docker Image | Docker Hub

docker info:查看docker信息,修改默认镜像存储位置

docker 文件服务器 docker.service文件位置_mob6454cc70219b的技术博客_51CTO博客

在wsl安装docker,进入wsl 系统环境,执行如下命令:更新包列表,安装依赖

sudo apt update

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

添加docker官方GPG key:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

添加docker库到APT源:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再次更新包列表:sudo apt update

安装docker: sudo apt install -y docker-ce

开启docker:systemctl start docker

激活docker:systemctl enable docker

注:可在命令前添加sudo授予权限。

检测docker安装运行成功:docker –version

要在 Docker 中设置代理

创建一个 Docker 配置文件(如果不存在),并在其中添加代理设置。例如,如果您使用的是 Linux 操作系统,则配置文件通常位于 /etc/docker/ 目录下,可以使用以下命令创建它:

sudo mkdir /etc/systemd/system/docker.service.d/

sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

添加如下内容:

[Service]

Environment="HTTP_PROXY=http://your_proxy_server:proxy_port"

Environment="HTTPS_PROXY=http://your_proxy_server:proxy_port"

Environment="NO_PROXY=localhost,127.0.0.1"

保存后重启docker:

sudo systemctl daemon-reload

sudo systemctl restart docker

检测docker使用的代理:docker info | grep -I proxy

使用docker安装ollama,使用wsl环境。

命令:docker pull ollama/ollama:latest(权限不足可在前面添加sudo)

遇到报错:Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

解决方法:

  1. 检测网络:ping google.com,如果ping不通,可能是网络问题。
  2. 检测docker daemon状态:systemctl status docker,如果docker状态不是active(running)状态,可重启尝试:systemctl restart docker.
  3. 增加timeout时间:打开或创建daemon.json文件,vim /etc/docker/daemon.json, 添加:

{

  "registry-mirrors": ["https://registry-1.docker.io"],

  "max-concurrent-downloads": 1,

  "disable-legacy-registry": true

}

重启docker:systemctl restart docker

  1. 使用docker镜像,修改或添加vim /etc/docker/daemon.json:

{

  "registry-mirrors": ["https://registry.docker-cn.com"]

}

重启docker:systemctl restart docker

  1. 检测防火墙或proxy代理设置:如果使用公司防火墙或代理服务器,可能会导致连接docker hub出问题。检测是否能登录docker registry或更改proxy设置,进入docker 代理配置文件:/etc/systemd/system/docker.service.d /http-proxy.conf,修改其中http和https的代理地址,如下形式:

[Service]

Environment="HTTP_PROXY=http://your-proxy:port"

Environment="HTTPS_PROXY=http://your-proxy:port"

[Service]

Environment="HTTP_PROXY=http://proxy-ut.rd.corpintra.net:3128"

Environment="HTTPS_PROXY=http://proxy-ut.rd.corpintra.net:3128"

Environment="NO_PROXY=localhost,127.0.0.1"

重新加载:systemctl daemon-reload

重启docker: systemctl restart docker

注:本次修改代理后就可以拉去ollama了,docker pull ollama/ollama:latest

  1. 使用docker桌面,可调整设置中的配置,setting->resources->wsl integration,确保integration的wsl distro是enabled。
  2. 清理docker缓存:docker system prune -a,移除未使用的镜像,容器和网络,这些可能会导致docker问题。

外部调用本地ollama

  1. 确保docker容器正在运行且监听某端口,命令:

将主机8080端口映射到容器内部8080端口,sudo docker run -d –name ollama-container -p 8080:8080 ollama/ollama:latest

  1. 获取公共IP或域名,公共IP地址-可直接联网使用,或指向公共IP的域名
  2. 如果使用路由器(如家庭或办公环境),需要做端口转发设置,允许外部请求到达docker容器。

在容器中查看镜像信息:cat /etc/os-release

在wsl中安装ollama:curl -fsSL https://ollama.com/install.sh | sh

创建打包docker镜像

目前docker安装在wsl环境中,创建文件夹:

mkdir docker-hello-world

cd docker-hello-world

创建 app.py 脚本-》print("Hello, Docker World!")

同一目录下创建文件Dockerfile(没有后缀),内容:

# 使用官方 Python 镜像作为基础

FROM python:3.10-slim

# 设置工作目录

WORKDIR /app

# 拷贝当前目录下所有文件到镜像中

COPY .  .

# 设置容器启动时执行的命令

CMD ["python", "app.py"]  # 注意是双引号,单引号会无法运行

构建镜像:docker build -t hello-world-python .  (注意‘.’代表本路径下的Dockerfile文件。

运行:docker run hello-world-python

打tag:docker tag <原镜像名>:<原标签> <新镜像名>:<新标签>,例如:docker tag hello-world-python:latest my_first_image:v1

删除镜像:docker rmi hello-world-python:latest

离线下载安装ollama模型

在公司环境网络下载受到限制,导致ollama在线安装及模型拉取失败。

故使用docker拉取ollama镜像,镜像中的ollama依旧无法拉取模型。

网络下载guff模型文件到本地调用。

先在huggingface或其镜像(hf-mirror.com)下载模型,需要找到guff格式的模型文件(保存的时模型的权重)。

编辑modelfile文件,例如命名为config.modelfile,内容为:FROM ./ Llama-3.2-3B-Instruct-Q3_K_L.gguf

Llama-3.2-3B-Instruct-Q3_K_L.gguf文件和config.modelfile文件在同一路径下,如:/home/***/ollama/。

启动ollama容器:docker run -it -v /home/***/ollama:/home/.ollama –name my_ollama ollama:ollama,运行ollama镜像命名为my_ollama,挂载wsl中存放模型及文件的路径到ollama容器中的/home/.ollama。

进入ollama容器:docker exec -it my_ollama /bin/bash,如果容器没有命名也可使用对应容器的ID进入(docker ps  -a查询)。

执行:ollama create llama3-3b(模型名称) -f ./config.modelfile,获得如下输出

注意:这里是挂载路径,所以要进入容器中的挂载路径

使用ollama run llama3-3b启动模型

退出容器:ctrl + d

删除模型:ollama rm model_name

【大模型搭建】部署Ollama,pull失败,手动构建方案_ollama pull-CSDN博客     

docker运行ollama镜像,以及离线方式加载模型_ollama 加载离线模型-CSDN博客

Ollama模型导入指南,从HuggingFace下载模型轻松上手-腾讯云开发者社区-腾讯云

ollama/ollama - Docker Image | Docker Hub

参考:

Docker安装Ollama及使用Ollama部署大模型 - 知乎

Docker学习笔记之为容器配置网络 - 阅读清单 - 腾讯云开发者社区-腾讯云

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐