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 配置网络访问
-
修改 OpenClaw 配置文件:
# 编辑配置文件 vi /big_data/deep_learning/docker_ollama/openclaw/openclaw.json -
添加以下配置:
{ "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
-
在 OpenClaw Web UI 中:
- 进入配置页面
- 设置 Gateway 为 LAN 模式
- 启用 Token 认证
-
确保防火墙允许相关端口:
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
注意事项
- 安全警告:
dangerouslyDisableDeviceAuth: true会禁用设备认证,仅在受信任的网络环境中使用 - 资源监控: 定期监控 GPU 和内存使用情况
- 数据备份: 重要数据应定期备份到外部存储
- 网络隔离: 生产环境建议使用专用网络或 VPN 访问
Docker中配置Ollama与OpenClaw完整教程
http://www.jhl-xlab.top/archives/wei-ming-ming-wen-zhang-KWkLa8uG