WSL中ollama配置
ollama docker
查看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)
解决方法:
- 检测网络:ping google.com,如果ping不通,可能是网络问题。
- 检测docker daemon状态:systemctl status docker,如果docker状态不是active(running)状态,可重启尝试:systemctl restart docker.
- 增加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
- 使用docker镜像,修改或添加vim /etc/docker/daemon.json:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
重启docker:systemctl restart docker
- 检测防火墙或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
- 使用docker桌面,可调整设置中的配置,setting->resources->wsl integration,确保integration的wsl distro是enabled。
- 清理docker缓存:docker system prune -a,移除未使用的镜像,容器和网络,这些可能会导致docker问题。
外部调用本地ollama
- 确保docker容器正在运行且监听某端口,命令:
将主机8080端口映射到容器内部8080端口,sudo docker run -d –name ollama-container -p 8080:8080 ollama/ollama:latest
- 获取公共IP或域名,公共IP地址-可直接联网使用,或指向公共IP的域名
- 如果使用路由器(如家庭或办公环境),需要做端口转发设置,允许外部请求到达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
参考:
更多推荐


所有评论(0)