Docker中配置Ollama与OpenClaw完整教程

基于 Docker 部署 Ollama 与 OpenClaw 完整安装教程

1. 环境准备

1.1 安装 Docker

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

1.2 安装 NVIDIA Container Toolkit

# 添加 NVIDIA 容器仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# 安装 NVIDIA 容器工具包
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# 重启 Docker
sudo systemctl restart docker

2. Docker 配置

2.1 创建目录结构

# 创建主目录
sudo mkdir -p /big_data/deep_learning/docker_ollama
sudo mkdir -p /big_data/deep_learning/docker_ollama/ollama
sudo mkdir -p /big_data/deep_learning/docker_ollama/openclaw

# 修改权限
sudo chmod -R 777 /big_data/deep_learning/docker_ollama

2.2 创建 docker-compose.yaml

version: "3.9"

services: 
  ollama:
    container_name: ollama
    image: ollama/ollama
    ports:
      - 17001:11434
      - 17002:18789
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              capabilities: ["gpu"]
              count: all
    volumes:
      - /big_data/deep_learning/docker_ollama/ollama:/root/.ollama
      - /big_data/deep_learning/docker_ollama/openclaw:/root/.openclaw
    restart: always

2.3 启动容器

# 创建并启动容器
docker-compose up -d

# 查看容器状态
docker ps

3. OpenClaw 配置

3.1 拉取 OpenClaw 模型

# 进入容器
docker exec -it ollama bash

# 在容器内拉取模型
ollama pull sorc/qwen3.5-instruct:9b

# 启动模型
ollama run sorc/qwen3.5-instruct:9b

3.2 配置 OpenClaw

# 进入容器后执行
openclaw onboard

4. 保存和迁移配置

4.1 保存容器镜像

# 获取容器ID
docker ps

# 提交更改到新镜像
docker commit [container_id] myimage/ollama-openclaw:latest

# 打包镜像
docker save -o ollama_openclaw.tar myimage/ollama-openclaw:latest

4.2 加载镜像

# 在目标机器上加载
docker load -i ollama_openclaw.tar

5. 运行服务

5.1 启动 OpenClaw Gateway

# 进入容器
docker exec -it ollama bash

# 启动 WebSocket 服务
openclaw gateway --port 18789 --verbose

5.2 配置网络访问

  1. 修改 OpenClaw 配置文件:

    # 编辑配置文件
    vi /big_data/deep_learning/docker_ollama/openclaw/openclaw.json
    
  2. 添加以下配置:

    {
      "allowedOrigins": [
        "http://localhost:18789",
        "http://127.0.0.1:18789",
        "http://宿主机IP:17002"
      ],
      "dangerouslyDisableDeviceAuth": true
    }
    

5.3 配置 Ollama 网络访问

# 进入容器
docker exec -it ollama bash

# 登录 Ollama
ollama signin

# 按照提示在浏览器中访问生成的链接
# 登录后设备将绑定到你的账号

6. Web UI 配置

6.1 配置 Gateway

  1. 在 OpenClaw Web UI 中:

    • 进入配置页面
    • 设置 Gateway 为 LAN 模式
    • 启用 Token 认证
  2. 确保防火墙允许相关端口:

    sudo ufw allow 17001/tcp
    sudo ufw allow 17002/tcp
    

7. 测试连接

7.1 本地测试

# 测试端口连通性
curl http://localhost:17001/api/tags
curl http://localhost:17002

7.2 WebSocket 连接测试

// 在浏览器控制台测试
const ws = new WebSocket('ws://localhost:17002');
ws.onopen = () => console.log('Connected to OpenClaw');

8. 故障排除

常见问题及解决方案

1. GPU 不可用

# 检查 GPU 驱动
nvidia-smi

# 检查容器 GPU 访问
docker run --gpus all nvidia/cuda:11.0-base nvidia-smi

2. 端口冲突

# 查看端口占用
netstat -tulpn | grep :17001

3. 权限问题

# 修复目录权限
sudo chown -R 1000:1000 /big_data/deep_learning/docker_ollama

4. 网络访问问题

# 检查容器网络
docker network inspect bridge

9. 维护和备份

9.1 定期备份

# 备份数据
tar -czf ollama_backup_$(date +%Y%m%d).tar.gz /big_data/deep_learning/docker_ollama

# 备份镜像
docker save -o ollama_backup_$(date +%Y%m%d).tar myimage/ollama-openclaw:latest

9.2 更新服务

# 停止服务
docker-compose down

# 更新镜像
docker-compose pull

# 重启服务
docker-compose up -d

注意事项

  1. 安全警告: dangerouslyDisableDeviceAuth: true 会禁用设备认证,仅在受信任的网络环境中使用
  2. 资源监控: 定期监控 GPU 和内存使用情况
  3. 数据备份: 重要数据应定期备份到外部存储
  4. 网络隔离: 生产环境建议使用专用网络或 VPN 访问

Docker中配置Ollama与OpenClaw完整教程
http://www.jhl-xlab.top/archives/wei-ming-ming-wen-zhang-KWkLa8uG
作者
Administrator
发布于
2026年03月23日
许可协议