在AI应用中,将模型封装到Docker容器中是一种常见的做法,它可以简化部署流程、提高可移植性,并确保环境一致性。本文将详细介绍如何构建一个包含Ollama框架和qwen2.5-3B 模型的Docker镜像,并通过Docker Compose快速移植部署到离线环境!

1 拉取ollama

# 拉取ollama 
docker pull ollama/ollama

2 运行Ollama并下载模型

2.1 运行Ollama

# ollama镜像下载完成后,执行如下命令运行ollama 
docker run -d --restart=always -p 11434:11434 --name ollama ollama/ollama

2.2 下载模型

# 进入容器
docker exec -it c81c97a47a52 bash

[root@node3 ~]# docker exec -it c81c97a47a52 bash
root@c81c97a47a52:/# 

# 下载模型
ollama pull qwen2.5:3b

root@c81c97a47a52:/#  ollama pull qwen2.5:3b
pulling manifest 
pulling manifest 
pulling 5ee4f07cdb9b... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1.9 GB                         
pulling 66b9ea09bd5b... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏   68 B                         
pulling eb4402837c78... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1.5 KB                         
pulling b5c0e5cf74cf... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 7.4 KB                         
pulling 161ddde4c9cd... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  487 B                         
verifying sha256 digest 
writing manifest 
success 
root@c81c97a47a52:/# 

2.3 验证模型是否下载

# 执行如下命令,验证模型是否下载
ollama list

root@c81c97a47a52:/# ollama list
NAME          ID              SIZE      MODIFIED     
qwen2.5:3b    357c53fb659c    1.9 GB    22 hours ago    
root@c81c97a47a52:/# 

3 直接提交修改容器为新镜像

# 提交容器为新镜像 
docker commit ollama ollama_qwen2.5-3b:latest

4 打包镜像并分发

4.1 保存镜像为tar文件

docker save -o ollama_qwen2.5-3b.tar ollama_qwen2.5-3b:latest

4.2 分发与加载镜像

# 将生成的tar文件传输到目标服务器,执行以下命令加载 
docker load -i ollama_qwen2.5-3b.tar

5 部署与使用

5.1 创建docker-compose.yml文件

# 创建docker-compose.yml文件并添加如下内容
version: '3'
services:
  ollama:
    image: ollama_qwen2.5-3b:latest
    container_name: ollama
    ports:
      - "11434:11434"
    restart: always

5.2 启动服务

# 在包含docker-compose.yml的目录中运行以下命令
docker-compose up -d

5.3 调用模型

curl --location --request POST 'http://127.0.0.1:11434/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
    "model": "qwen2.5:3b",
    "messages": [
        {
        "role": "user",
        "content": "你好"
        }
    ],
    "stream": false
}'


[root@node1 ~]# curl --location --request POST 'http://127.0.0.1:11434/v1/chat/completions' \
> --header 'Content-Type: application/json' \
> --data '{
>     "model": "qwen2.5:3b",
>     "messages": [
>         {
>         "role": "user",
>         "content": "你好"
>         }
>     ],
>     "stream": false
> }'
{"id":"chatcmpl-342","object":"chat.completion","created":1742562710,"model":"qwen2.5:3b","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":"您好!很高兴为您服务。有什么我可以帮您的吗?"},"finish_reason":"stop"}],"usage":{"prompt_tokens":30,"completion_tokens":13,"total_tokens":43}}
[root@node1 ~]# 

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐