docker compose部署ollama
一、配置docker镜像源
1.配置镜像源
Docker的配置文件通常是 /etc/docker/daemon.json 如果文件不存在,请创建它。
vim /etc/docker/daemon.json
然后粘贴以下内容
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://ccr.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.ccs.tencentyun.com"
]
}
2.重启Docker服务
为了让新的配置生效,必须重启Docker服务
#重新加载配置
sudo systemctl daemon-reload
#重启Docker服务
sudo systemctl restart docker
3.验证是否生效
docker info

通过拉取镜像,测试一下
#拉取hello-world镜像
docker pull hello-world
#查看镜像源列表
docker images
可以看到hello-world镜像拉取成功。可以通过docker rmi 镜像ID删除镜像
二、docker部署ollama
1.创建目录结构
我的配置和目录统一放在/software目录下。可以根据实际情况更改主目录
#创建主目录
sudo mkdir -p /software/ollama
2.处理权限问题
容器内的 Ollama 服务默认以 root 用户运行。为了让容器能够在你的主机目录中读写文件,最简单的方法是将该目录的所有权交给 root 用户
sudo chown -R root:root /software/ollama
或者可以放宽权限,允许所有用户读写
sudo chmod -R 777 /software/ollama
3.创建docker-compose.yml文件
#进入主目录
cd /software/ollama
#编辑docker-compose.yml文件
vim docker-compose.yml
粘贴以下内容。
version: '3.8'
services:
ollama:
container_name: ollama
image: ollama/ollama
restart: always
ports:
- "11434:11434"
volumes:
- /software/ollama:/root/.ollama
networks:
- my-network
networks:
my-network:
driver: bridge
在当前目录通过docker compose up -d命令启动容器,如下所示。
#进入docker-compose.yml所在目录
cd /software/ollama
#启动容器
docker compose up -d
通过docker ps命令可以看到容器成功启动
浏览器访问一下http://ip地址:端口/11434。下图可以见到ollama部署成功。
4.拉取模型
exec命令加容器id进入容器内部
docker exec -it 6ddefb781332 /bin/bash
例子:
#查看容器id
root@xxx:/software/ollama# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ddefb781332 ollama/ollama "/bin/ollama serve" 3 hours ago Up 3 hours 0.0.0.0:11434->11434/tcp, [::]:11434->11434/tcp ollama
#使用容器id+exec命令进入容器内部。容器内输入exit退出容器
root@xxx:/software/ollama# docker exec -it 6ddefb781332 /bin/bash
拉取deepseek-r1:7b模型,也可以将7b改为1.5b。
4.1容器内与模型对话
ollama run deepseek-r1:7b
输入信息即可与模型对话。ctrl+d退出对话
也可以使用curl命令或postman测试对话
4.2 curl命令与模型对话
在终端粘贴并修改以下命令,与模型对话
curl -X POST http://192.168.100.100:11434/api/chat -d '{
"model": "deepseek-r1:7b",
"messages": [{
"role": "user",
"content": "How many letter r are in strawberry?"
}],
"think": true,
"stream": false
}'

4.3 postman测试与模型对话
POST请求,http://ip:端口/api/chat
#请求体
{
"model":"deepseek-r1:7b",
"messages": [{
"role": "user",
"content": "你好,简单介绍一下你自己"
}],
"stream": false
}
如下图所示
5.通过docker compose命令快捷管理容器
使用docker compose命令时,一定要在docker-compose.yml同级目录
docker compose up -d启动容器docker compose stop停止容器docker compose restart重启容器docker compose down停止并移出容器docker compose logs查看容器日志docker compose ps列出compose应用中的各个容器docker compose rm删除已停止的compose应用,它会删除容器和网络
评论